首页IT科技spring声明式事务配置代码(学习笔记——Spring声明式事务管理属性(隔离级别、事务超时、事务只读、事务回滚);Spring5新特性、新注解&整合log4j2;Spring5整合Junit5)

spring声明式事务配置代码(学习笔记——Spring声明式事务管理属性(隔离级别、事务超时、事务只读、事务回滚);Spring5新特性、新注解&整合log4j2;Spring5整合Junit5)

时间2025-06-15 06:40:03分类IT科技浏览3863
导读:2023-01-19...

2023-01-19

Spring声明式事务管理属性

一           、隔离级别

1                、概念:一个事务与其他事务之间的隔离等级(1,2,4,8)           。

2      、隔离级别:

(1)读未提交(1):READ UNCOMMTTED

存在问题:脏读(读取到了未提交数据)

(2)读已提交(2):READ COMMTTED

存在问题:可能出现不可重复读

(3)可重复读(4):REPEATABLE READ

存在问题:可能出现幻读

(4)串行化(8):SERIALIZABLE

二         、事务超时

1                、设置事务超时时间           ,到达指定时间后会强制事务回滚

2         、类型:int                ,单位:秒

3      、默认值:-1(未设置强制回滚)

三                、事务只读(readonly)

1            、一般事务方法中只有查询操作时      ,才将事务设置为只读

2   、默认值:false

四                、事务回滚

1               、rollbackFor:设置回滚的异常Class

2、noRollbackFor:设置不回滚异常Class

五             、基于XML方式         ,配置声明式事务管理

六                 、Spring5新特性   、新注解&整合log4j2

1           、添加新注解

@Nullable作用

①位置:可以书写在方法&属性上面&参数前面                。

②作用:表示当前方法或属性可以为空                ,当前属性为空时         ,消除空指针异常      。

2                、Spring5整合Log4j2

(1)导入jar包

(2)编写配置文件

<?xml version="1.0" encoding="UTF-8"?> <!--日志级别以及优先级排序:OFF>FATAL>ERROR>WARN>INFO>DEBUG>TRACE>ALL--> <!-- configuration后面的status用于设置log4j2自身内部的信息输出      ,可以不设置                ,当设置成trace时            ,可以看到log4j2内部各种详细输出--> <configuration status="INFO"> <!-- 先定义所有的appender--> <appenders> <!-- 输出日志信息到控制台--> <console name="Console" target="SYSTEM_OUT"> <!-- 控制日志输出的格式--> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} -%msg%n"></PatternLayout> </console> </appenders> <!-- 然后定义logger   ,只有定义了logger并引入的appender,appender才会生效--> <!-- root:用于指定项目的根日志                ,如果没有单独指定Logger,则会使用root作为默认的日志输出--> <loggers> <root level="DEBUG"> <appender-ref ref="Console"></appender-ref> </root> </loggers> </configuration>

七      、Spring5整合Junit5

1         、导入jar包(注:将Junit4的jar包删除)

<!-- https://mvnrepository.com/artifact/org.springframework/spring-context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>5.3.10</version> </dependency> <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api --> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>5.7.2</version> <scope>test</scope> </dependency>

2                、使用注解整合即可

(1)整合方式一

@ContextConfiguration(locations = "classpath:applicationContext_transactionmanager.xml") @ExtendWith(SpringExtension.class)

(2)整合方式二

@SpringJUnitConfig(locations = "classpath:applicationContext_transactionmanager.xml")
声明:本站所有文章               ,如无特殊说明或标注,均为本站原创发布         。任何个人或组织             ,在未征得本站同意时                 ,禁止复制         、盗用      、采集                、发布本站内容到任何网站            、书籍等各类媒体平台                。如若本站内容侵犯了原著者的合法权益   ,可联系我们进行处理         。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
windows无法自动检测此网络的代理设置什么意思(windows无法自动检测此网络的代理设置解决方法) 小米的工程师是啥(小米资深工程师瞿晋萍(男):米聊服务器的技术选型和架构设计)