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

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

时间2025-04-29 09:21:31分类IT科技浏览3276
导读: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
css+div制作网页心得(【CSS】课程网站 Banner 制作 ② ( Banner 栏版心盒子测量 | Banner 版心盒子模型左侧导航栏代码示例 )) seo的基础技术(深入了解SEO:从概念到实践)