Spring5框架新功能

1 Spring5自带的日志封装

1 概述

1 Spring5 已经移除 Log4jConfigListener,官方建议使用 Log4j2

2 Spring5 框架整合 Log4j2

2 操作

1 引入相关jar包

log4j-api-2.11.2.jar
log4j-core-2.11.2.jar
log4j-slf4j-impl-2.11.2.jar
slf4j-api-1.7.30.jar

2 创建log4j2.xml配置文件

<?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"/>
 </console>
 </appenders>
 <!--然后定义 logger,只有定义 logger 并引入的 appender,appender 才会生效-->
 <!--root:用于指定项目的根日志,如果没有单独指定 Logger,则会使用 root 作为
默认的日志输出-->
 <loggers>
 <root level="info">
 <appender-ref ref="Console"/>
 </root>
 </loggers>
</configuration> 

2 支持@Nullable 注解

1 概述

@Nullable 注解可以使用在方法上面,属性上面,参数上面,表示方法返回可以为空,属性值可以 为空,参数值可以为空

方法上

表示方法返回值可以为空

@Nullable
public String getNameById(String id);

方法参数

表示方法参数可以为空

public String getName(@Nullable String id);

类属性

该属性值可以为空

@Nullable
private String name;

3 支持函数式风格 GenericApplicationContext

支持函数式风格创建对象, 交由spring管理.

@Test
public void testGenericApplicationContext() {
 // 1 创建 GenericApplicationContext 对象
 GenericApplicationContext context = new GenericApplicationContext();
 // 2 调用 context 的方法对象注册
 context.refresh();
 context.registerBean("user1",User.class,() -> new User());
 // 3 获取在 spring 注册的对象
 User user = (User)context.getBean("user1");
 System.out.println(user);
}

4 Spring5支持JUnit5

1 整合JUnit5

1 引入相关jar包

spring-test-5.2.6RELEASE.jar

2 创建测试类

@RunWith(SpringJUnit4ClassRunner.class) //单元测试框架
@ContextConfiguration("classpath:bean1.xml") //加载配置文件
public class JTest4 {
     @Autowired
     private UserService userService;
    
     @Test
     public void test1() {
         userService.accountMoney();
     }
}

2 整合JUnit5

1 添加JUnit5的jar包

2 创建测试类

@ExtendWith(SpringExtension.class)
@ContextConfiguration("classpath:bean1.xml")
public class JTest5 {
     @Autowired
     private UserService userService;
    
     @Test
     public void test1() {
         userService.accountMoney();
     }
}

3 优化

使用复合注解替代上面两个注解

@SpringJUnitConfig(locations = "classpath:bean1.xml")
public class JTest5 {
     @Autowired
     private UserService userService;
    
     @Test
     public void test1() {
         userService.accountMoney();
     }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值