发表于: 2022-08-30 23:14:08

0 594


今天完成的事情:

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);

    }







收获:以上





返回列表 返回列表
评论

    分享到