发表于: 2022-08-30 23:14:08
0 595
今天完成的事情:
1.解决springboot-项目获取resources下文件 打成jar找不到的问题
2.购物车缺陷修复
3.mybatis-plus 多数据源 @DS 没起作用
4.springsecurity 获取当前用户信息
5.restful再学习
明天计划的事情:
工作....
遇到的问题:
1.解决springboot-项目获取resources下文件 打成jar 找不到文件的问题,绝对路径错误
问题出在获取资源路径的方法,之前我用的:
ResourceUtils.getFile("xxxx.xxxx").getPath();
在本地测试正常,在服务器jar运行时就找不到文件
需要通过流去获取
ClassPathResource resource = new ClassPathResource("xxxx.xxxx");
File sourceFile = resource.getFile();
InputStream fis = resource.getInputStream();
不管是用ClassPathResource还是ClassLoader,读取jar里面的文件,我们只能用流去读取,不能用file,文件肯定要牵扯路径。
2.购物车参数名未统一,导致传参错误,前端获取值不对,导致计算不正确
3.mybatis-plus 多数据源 加在stockService中的@DS 没起作用
去掉service上的@Transactional,数据源切换正常,但是事务无效
Service的@Transactional,数据源没有切换
所以是@Transactional 这注解导致的,@Transactional的作用是给当前方法加上事务,遇到报错就会回滚代码。@Transactional其实也会让当前方法处于同一个数据源,那这就简单了, 再stockService上加上@Transactional(propagation = Propagation.REQUIRES_NEW) 这样就会产生新的事务,获取新的数据库连接;
需要注意:
mysql:orderService
oracle:stockService
oracle数据库的操作,需要在mysql之后,这样当stockService失败,会使得orderService回滚;
如果oracle的操作先,那当orderService失败,无法使stockService回滚
会回滚
@Transactional(rollbackFor = Exception.class)
public void upload(Dto Dto){
orderService(respDto);
stockService(respDto);
}
收获:以上
评论