解决VUE跨域问题添加配置类

解决VUE跨域问题添加配置类

vue跨域.png
代码内容

1
2
3
4
5
6
7
8
@Configuration
public class WebConfigurer implements WebMvcConfigurer{
@Autowired
private CrossDomain crossDomain;
@Override
public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(crossDomain).addPathPatterns("/**").excludePathPatterns("/xxxxxxxxx6666");
}
}

excludePathPatterns(“/xxxxxxxxx6666”):
相对于一个靶子,除了这个路径下的文件,其他都可以进入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
@Component
public class CrossDomain extends HandlerInterceptorAdapter {
public CrossDomain() {
super();
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//是否携带cookie
response.setHeader("Access-Control-Allow-Credentials", "true");
//允许跨域的请求方法GET、POST、HEAD等
response.setHeader("Access-Control-Allow-Methods", "*");
//重新预检验跨域的缓存时间(s)Access-Control-Allow-Origin
response.setHeader("Access-Control-Max-Age", "3600");
//允许跨域的请求头
response.setHeader("Access-Control-Allow-Headers", "x-requested-with,content-type");
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
super.postHandle(request, response, handler, modelAndView);
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
super.afterCompletion(request, response, handler, ex);
}
@Override
public void afterConcurrentHandlingStarted(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
super.afterConcurrentHandlingStarted(request, response, handler);
}
}

记一次SVN错误上传代码

手贱在SVN上上传了有错误代码的版本,于是就去网上搜索有关于SVN删除版本库的方法。

方法一: 无效

  1. 首先找到本次提交后生成的版本号,例如为:14
  2. 登录到svn服务器上,进入到项目的svn目录;或者找到本地的svn的配置目录;
  3. 进入db目录,删除此目录下的rep-cache.db。并修改此目录下的current文件,将其修改为上一个版本,
    例如此次目的想修改为:13;
  4. 删除db/revs/0/目录下的14文件。
  5. 删除db/revprops/0/目录下的14文件。
  6. 至此,服务器端已经回退到13版本,此时可以将本地下载到的代码删除,重新从svn服务器上下载或者检出一份代码,然后基于此代码继续修改提交。

引用自: https://blog.csdn.net/johnlaoxing/article/details/76000691

方法二:有效

  1. 在受SVN控制的某层文件夹(项目)或文件上点右键,选择“TortoiseSVN-显示日志(Show log)”
  2. 在弹出的日志窗口中,右键点击要复原的版本,选择“复原到此版本(Revert to this revision)”
  3. 复原结束后,执行“提交(commit)”操作,将此版本作为版本库的最新版本

在方法二中点击日志窗口后会有以下两个选项,根据情况去使用。

  • Revert to this revision

    全部回滚到该版本,那么会直接覆盖掉你的文件。

  • Revert changes from this revision

    以更新的形式回滚,那么遇到有冲突的代码会让你去选择怎么合并。

SVN是没有提供删除某次版本提交的功能,所以只能采取重新覆盖的形式。要注意了。

假设第一种方式是有效的,而直接对svn服务器进行操作就需要管理员了,那你就需要去麻烦你的组长什么的了,就很尴尬了。。。。。

记一次svn删除文件

因为原来的项目结构有问题,导致子项目需要进行改名,结果改名之后推送代码后拉取,发现原来的子项目还存在,这就出现了SVN和git的一个特性了,

SVN:按需拉取,有什么拉什么,有什么推什么

git:全部拉取或者推送

image20191125135023988.png

下面说说怎么处理:

  1. 找到要删除的文件所在的目录

  2. 右键点击空白处 TortoiseSVN -> Repo-browser(版本库浏览器)

    image-20191125135232186

  3. 对着要删除的文件点击右键,选择删除

    image20191125135620642.png

  4. 输入删除说明后点击ok即可

    image20191125135850290.png

  5. 删除本地代码就搞定了

设置 Maven 通过 JDK 1.8 进行编译

通过 pom 设置 Maven 通过 JDK 1.8 进行编译

——maven-compiler-plugin插件maven项目会用maven-compiler-plugin默认的jdk版本来进行j编译,如果不指明版本就容易出现版本不匹配的问题,可能导致编译不通过的问题。解决办法:在pom文件中配置maven-compiler-plugin插件(以jdk1.8)。

1、方式一

1
2
3
4
<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
</properties>

2、方式二

1
2
3
4
5
6
7
8
9
10
11
12
13
 <build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>

配置JAVA开发环境

配置JAVA开发环境# JAVA 环境

在环境变量增加以下配置

JAVA_HOME

1
C:\Program Files\Java\jdk1.8.0_181

PATH

1
2
%JAVA_HOME%\bin\
%JAVA_HOE%\jre\bin\

CLASSPATH

1
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

测试命令

1
2
java -version
javac -version

数据库连接池

目前技术前沿比较流行的数据库连接池有:DBCP、Tomcat Jdbc Pool、BoneCP、Druid、C3P0等

DBCP

由Apache开发的一个Java数据库连接池项目, Jakarta commons-pool对象池机制,Tomcat使用的连接池组件就是DBCP。单独使用dbcp需要3个包:common-dbcp.jar,common-pool.jar,common-collections.jar,预先将数据库连接放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完再放回。单线程,并发量低,性能不好,适用于小型系统。

Tomcat Jdbc Pool

Tomcat在7.0以前都是使用common-dbcp做为连接池组件,但是dbcp是单线程,为保证线程安全会锁整个连接池,性能较差,dbcp有超过60个类,也相对复杂。Tomcat从7.0开始引入了新增连接池模块叫做Tomcat jdbc pool,基于Tomcat JULI,使用Tomcat日志框架,完全兼容dbcp,通过异步方式获取连接,支持高并发应用环境,超级简单核心文件只有8个,支持JMX,支持XA Connection。

BoneCP

官方说法BoneCP是一个高效、免费、开源的Java数据库连接池实现库。设计初衷就是为了提高数据库连接池性能,根据某些测试数据显示,BoneCP的速度是最快的,要比当时第二快速的连接池快25倍左右,完美集成到一些持久化产品如Hibernate和DataNucleus中。BoneCP特色:高度可扩展,快速;连接状态切换的回调机制;允许直接访问连接;自动化重置能力;JMX支持;懒加载能力;支持XML和属性文件配置方式;较好的Java代码组织,100%单元测试分支代码覆盖率;代码40KB左右。

Druid

是Java语言中最好的数据库连接池,Druid能够提供强大的监控和扩展功能,是一个可用于大数据实时查询和分析的高容错、高性能的开源分布式系统,尤其是当发生代码部署、机器故障以及其他产品系统遇到宕机等情况时,Druid仍能够保持100%正常运行。主要特色:为分析监控设计;快速的交互式查询;高可用;可扩展;Druid是一个开源项目,源码托管在github上。
C3p0:开源的JDBC连接池,实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate、Spring等。单线程,性能较差,适用于小型系统,代码600KB左右。

数据库连接池比较图.png