社交项目(五)

41 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第29天,点击查看活动详情

引入logback组件和事务的配置

1.pom.xml引入logback

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.3</version>
</dependency>

2.重新运行测试用例

可以对应的sql运行语句,方便我们排查错误 image.png

3.自定义日志输出格式

resources新增logback.xml文件,spring会自动根据名称来载入文件 image.png

<?xml version="1.0" encoding="UTF-8" ?>
<configuration >
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<!--        自定义日志输出格式-->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{HH:mm:ss} %-5level [%thread] %logger{30} - %msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>
<!--    应用 日志最低输出级别-->
    <root level="debug">
<!--        引用console-->
        <appender-ref ref="console"/>
    </root>
</configuration>

代码说明:
name="console":设置日志输出格式的名字
%d{HH:mm:ss} %-5level [%thread] %logger{30} - %msg%n:时间格式 日志级别输出 线程 日志记录 日志说明
level="debug":日志输出的最低级别 ref="console":引用console

4.重新启动应用

可以看到,日志按照我们设置的格式输出 image.png

5.事务的处理

错误展示:假如我们在循环中执行到i==2的时候,程序出现异常 image.png 控制台输出 image.png 我们看看数据库是否正常写入:产生了两条我们不希望的数据,我们期望要么在这个循环中全部执行成功,要么全部失败,不能存在数据写入一半的情况,这时候就需要引入事务处理 image.png

6.查看依赖包是否存在事务依赖包

jdbc引入之后,也就包tx组件也引入进来了 image.png 原因:jdbc依赖的引入 image.png

7.applicationContext.xml引入配置

配置1:

xmlns:tx="http://www.springframework.org/schema/tx"

配置2:

http://www.springframework.org/schema/tx
 http://www.springframework.org/schema/tx/spring-tx.xsd

image.png 声明式事务配置

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>

8.进行测试

引入事务声明

@Transactional

image.png image.png 如果产生异常,则会回滚