springboot2应用中碰到的一些坑
# 与操作系统有关
# 1、CentOS7的/tmp目录自动清理规则
- 处理方式:改变临时文件的存储路径
/**
* @date 2018-12-28
* @author https://blog.csdn.net/llibin1024530411/article/details/79474953
*/
@Configuration
public class MultipartConfig {
/**
* 文件上传临时路径
*/
@Bean
MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
String location = System.getProperty("user.home") + "/.springboot2/file/tmp";
File tmpFile = new File(location);
if (!tmpFile.exists()) {
tmpFile.mkdirs();
}
factory.setLocation(location);
return factory.createMultipartConfig();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 版本问题
# 2.4以上版本
# 事务问题
Spring的事务是通过代理对象去处理,如果在在同一个类里面, 编写两个方法, 内部调用的时候, 会导致事务设置失效。 原因是没有用到代理对象的缘故。 解决: 0) 、 导入 spring-boot-starter-aop 1) 、 @EnableTransactionManagement(proxyTargetClass = true) 2) 、 @EnableAspectJAutoProxy(exposeProxy=true) 3) 、 AopContext.currentProxy() 调用方法
@Transactional(propagation = Propagation.REQUIRED)
public void A(){
bService.b();
bService.c();
// b()和C()方法上设置事务传播级别不会起作用,和A()共用一个事务
b();
c();
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9