小蔡学Java

Spring知识点总结六

2024-01-05 20:37 1414 0 SSM / SpringBoot 框架篇 Spring

11、事务

事务的概念

事务指的是一个操作序列,该操作序列中的多个操作,要么都做,要么都不做,是一个不可分割的单位

事务的四大特性

1.原子性

事务是最小的执行单位,不允许分割,事务的原子性确保动作要么全部执行,要么全部不执行

2.一致性

执行事务的前后,数据保持一致,例如转账业务中,无论事务是否成功,转账者和收款人的总额应该是不变的

3.隔离性

各个事务的执行互不干扰

4.持久性

一个事务被提交后,他对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响

事务的并发问题

1.脏读

事务B修改数据后回滚,期间事务A读到的数据就是脏读

2.不可重复读

事务B修改数据导致事务A前后两次读取不一致

3.幻读

一个事务两次读取,中间进行了插入操作

事物的隔离级别

12、日志和测试

日志的级别

过滤规则:比日志设置级别低的信息就会忽略掉

trace:轻微痕迹,级别最低;

debug:调试日志;

info:普通信息,默认级别;

**warn:**警告,不影响使⽤,但需要注意的问题;

error:错误信息;

fatal:致命,代码异常导致程序退出执⾏的事件,级别最高;

使用日志框架

添加依赖

	<!-- spring切面包 -->
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-aspects</artifactId>
		<version>5.3.5</version>
	</dependency>
	<!--aop联盟包-->
	<dependency>
		<groupId>aopalliance</groupId>
		<artifactId>aopalliance</artifactId>
		<version>1.0</version>
	</dependency>

在resource目录下创建log4j2.xml文件

	<?xml version="1.0" encoding="UTF-8"?>
	<Configuration status="DEBUG">
		<Appenders>
			<!-- OUT打印黑色字体,ERR是红色 -->
			<Console name="Console" target="SYSTEM_OUT">
				<PatternLayout pattern="%d{HH:frowning:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
			</Console>
		</Appenders>
		<Loggers>
			<!-- 打印日志级别 -->
			<Root level="debug">
				<AppenderRef ref="Console"/>
			</Root>
		</Loggers>
	</Configuration>

junit5单元测试

导入依赖包

	<!-- junit5 -->
	<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<version>5.7.0</version>
			<scope>test</scope>
	</dependency>

添加测试代码

	//配置扫描的xml文件
	@SpringJUnitConfig(locations = "classpath:applicationContext.xml")
	public class Test{
		@Autowired
		private UserBean userBean;
		@Test
		public void testUserBean(){

		}
	}

评论( 0 )

  • 博主 Mr Cai
  • 坐标 河南 信阳
  • 标签 Java、SpringBoot、消息中间件、Web、Code爱好者

文章目录