Spring系列文章:Spring集成Log4j2⽇志框架、整合JUnit

一、集成Log4j2⽇志框架

从Spring5之后,Spring框架⽀持集成的⽇志框架是Log4j2.如何启⽤⽇志框架:

第⼀步:引⼊Log4j2的依赖

复制代码
<!--log4j2的依赖-->
<dependency>
 <groupId>org.apache.logging.log4j</groupId>
 <artifactId>log4j-core</artifactId>
 <version>2.19.0</version>
</dependency>
<dependency>
 <groupId>org.apache.logging.log4j</groupId>
 <artifactId>log4j-slf4j2-impl</artifactId>
 <version>2.19.0</version>
</dependency>

第⼆步:在类的根路径下提供log4j2.xml配置⽂件(⽂件名固定为:log4j2.xml,⽂件必须放到类根路径 下。)

html 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
 <loggers>
 <!--
 level指定⽇志级别,从低到⾼的优先级:
 ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
 -->
 <root level="DEBUG">
 <appender-ref ref="spring6log"/>
 </root>
 </loggers>
 <appenders>
 <!--输出⽇志信息到控制台-->
 <console name="spring6log" target="SYSTEM_OUT">
 <!--控制⽇志输出的格式-->
 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss SSS} [%t] %-3le
vel %logger{1024} - %msg%n"/>
 </console>
 </appenders>
</configuration>

第三步:使⽤⽇志框架

java 复制代码
Logger logger = LoggerFactory.getLogger(FirstSpringTest.class);
logger.info("我是⼀条⽇志消息");

二、Spring对JUnit4的⽀持

依赖

java 复制代码
<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>6.0.6</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>6.0.6</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>

单元测试

java 复制代码
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring.xml")
public class SpringJUnit4Test {
     @Autowired
     private User user;
     
    @Test
     public void testUser(){
         System.out.println(user.getName());
     }
}

Spring提供的⽅便主要是这⼏个注解:

  • @RunWith(SpringJUnit4ClassRunner.class)
  • @ContextConfiguration("classpath:spring.xml")

在单元测试类上使⽤这两个注解之后,在单元测试类中的属性上可以使⽤@Autowired。⽐较⽅便。

三、Spring对JUnit5的⽀持

引⼊JUnit5的依赖,Spring对JUnit⽀持的依赖还是:spring-test,如下

java 复制代码
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>6.0.6</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>6.0.6</version>
        </dependency>

        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>5.9.0</version>
            <scope>test</scope>
        </dependency>

单元测试

java 复制代码
@ExtendWith(SpringExtension.class)
@ContextConfiguration("classpath:spring.xml")
public class SpringJUnit5Test {
     @Autowired
     private User user;
     
     @Test
     public void testUser(){
         System.out.println(user.getName());
     }
}

在JUnit5当中,可以使⽤Spring提供的以下两个注解,标注到单元测试类上,这样在类当中就可以使⽤ @Autowired注解了。

@ExtendWith(SpringExtension.class)

@ContextConfiguration("classpath:spring.xml")

相关推荐
天若有情6731 小时前
Spring MVC文件上传与下载全面详解:从原理到实战
java·spring·mvc·springmvc·javaee·multipart
祈祷苍天赐我java之术1 小时前
Redis 数据类型与使用场景
java·开发语言·前端·redis·分布式·spring·bootstrap
安冬的码畜日常3 小时前
【JUnit实战3_03】第二章:探索 JUnit 的核心功能(二)
测试工具·junit·单元测试·junit 5
谢尔登4 小时前
【Nest】单元测试
单元测试·log4j
艾菜籽4 小时前
Spring MVC练习:留言板
java·spring·mvc
摇滚侠4 小时前
Spring Boot 3零基础教程,WEB 开发 自定义静态资源目录 笔记31
spring boot·笔记·后端·spring
左灯右行的爱情4 小时前
4-Spring SPI机制解读
java·后端·spring
橘子海全栈攻城狮5 小时前
【源码+文档+调试讲解】基于SpringBoot + Vue的知识产权管理系统 041
java·vue.js·人工智能·spring boot·后端·安全·spring
kkkkk0211066 小时前
微服务学习笔记(黑马商城)
java·spring boot·spring·spring cloud·sentinel·mybatis·java-rabbitmq
阿里云云原生6 小时前
零代码改造 + 全链路追踪!Spring AI 最新可观测性详细解读
spring·云原生