spring事务实战

事务隔离级别 PROPAGATION_REQUIRED 如果当前没有事务,就创建一个新事务,如果当前存在事务,就加入该事务,这是最常见的选择,也是Spring默认的事务传播行为。 一个service内,方法A和方法B事务隔离级别都是REQUIRED,insertAAndB方法无事务 @Override @Transactional(propagation = Propagation.REQUIRED) public void insertA() { User user = new User(); user.setAge(1); user.setName("test"); userDao.insert(user); // A方法抛异常 int i = 1/0; } @Transactional(propagation = Propagation.REQUIRED) public void insertB() { TUser user = new TUser(); user.setAge(1); user.setName("test"); tUserDao.insert(user); } @Override public void insertAAndB() { insertA(); insertB(); } ------------------分界线--------------------- @Test void insertAAndB() { // 一个service内 事务传播行为都是required 测试方法A有异常 方法A成功执行,方法B因为异常未执行 transactionTestAService.insertAAndB(); } 分析:方法A声明了事务,但是因为一个service内,方法 insertAAndB 调用了 方法A和方法B,属于自身调用,事务失效,所以方法A抛异常未回滚。 ...

October 8, 2021 · 2 min

skyWalking搭配springboot应用

上传springboot的jar包 cd /opt/jar ![image-20210616225104486](skyWalking搭配springboot应用 .assets/image-20210616225104486.png) 修改agent配置 cd /opt/software/skywalking/apache-skywalking-apm-bin mkdir /opt/software/skywalking/apache-skywalking-apm-bin/agent-mysql-boot cp /opt/software/skywalking/apache-skywalking-apm-bin/agent/* /opt/software/skywalking/apache-skywalking-apm-bin/agent-mysql-boot # 修改应用名称 vim /opt/software/skywalking/apache-skywalking-apm-bin/agent-mysql-boot/config/agent.config ![image-20210616230243851](skyWalking搭配springboot应用 .assets/image-20210616230243851.png) ...

August 30, 2021 · 1 min

spring模块介绍

spring-aop 面向窃密室内编程 spring-aspects Spring提供的对AspectJ框架的整合 spring-beans Spring IOC的基础实现,包含访问配置文件、创建和管理bean等。 spring-context-indexer spring-context-support Spring context的扩展支持,用于MVC方面。 ...

February 28, 2021 · 2 min

spring语法变化

Java5(2004): 枚举、泛型、注解、封箱(解箱)… Java6(2006): @Override接口 Java7(2011): Diamond语法、多Catch、Try… Java8(2014): Lambda语法、可重复注解、类型注解… Java9(2017): 模块化、接口私有方法… Java10(2018): 局部变量类型推断

February 28, 2021 · 1 min
总访问量 总访客数