【Spring】Spring5的新功能(整合日志框架、@Nullable、函数式风格GenericApplicationContext、JUnit5整合)

Spring框架基于Jdk8,兼容Jdk9。介绍一下Spring5的新功能:
1.支持整合日志框架
Spring5自带通用的日志封装,也可以对其他日志框架进行整合。Spring5移除Log4jConfigListener(对log2j整合),不支持log4j,官方建议使用log4j2。
(1)相关jar包:
在这里插入图片描述
(2)log4j2.xml
(该配置文件名字固定为log4j2.xml,否则无法识别)

<?xml version="1.0" encoding="UTF-8" ?>
<!--Configuration后面的status用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,可以看到Iog4j2内部各种详细输出-->
<configuration status="INFO">
    <!--定义所有的appender-->
    <appenders>
        <!-- 日志输出到控制台 -->
        <Console name="Console" target="SYSTEM_OUT">
            <!--日志级别以及优先级排序:OFF 〉FATAL 〉ERROR 〉WARN 〉INFO 〉DEBUG 〉TRACE > ALL-->
            <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
    </appenders>
    <loggers>
        <root level="INFO">
            <appender-ref ref="Console"/>
        </root>
    </loggers>
</configuration>

方式1:直接调用方法
方式2:手动输出
2.支持@Nullable注解
Spring和核心容器支持@Nullable注解
① 使用在方法:方法返回可以为空;
在这里插入图片描述
② 属性:属性值可以为空;
在这里插入图片描述
③ 方法参数:参数值可以为空。
在这里插入图片描述
3.支持函数式风格GenericApplicationContext

public class User {}
//函数式风格GenericApplicationContext测试类
public class GenericApplicationContextTest {
    //函数式风格创建对象,交给Spring管理
    @Test
    public void GenericApplicationContextTest(){
        //1.创建GenericApplicationContext对象
        GenericApplicationContext context = new GenericApplicationContext();
        //2.调用context的方法完成对象注册
        context.refresh();
        context.registerBean("user", User.class,()->new User());//函数式风格创建对象
        //3.获取注册的对象
        User user = (User) context.getBean("user");
        System.out.println(user);
    }
}

在这里插入图片描述
5.支持整合JUnit5单元测试框架
(1)Spring整合JUnit4
① 引入jar包:spring-test-5.2.6.RELEASE.jar,添加JUnit4依赖:
在这里插入图片描述
② 创建测试类,使用JUnit4注解测试:

//此处使用的注解是JUnit4中的注解
@RunWith(SpringJUnit4ClassRunner.class)//单元测试框架
@ContextConfiguration("classpath:applicationContext-annotation.xml")//加载配置文件
public class Junit4Test {
    @Autowired
    private AccountDao accountDao;
    @Test
    public void test1(){
        accountDao.transfer("张无忌","赵敏",200);
        System.out.println("转账完成...");
    }
}

在这里插入图片描述
(5)Spring整合JUnit5
① 添加JUnit5依赖
在这里插入图片描述
② 创建测试类,使用JUnit5注解测试:

//此处使用的注解是JUnit5中的注解
@ExtendWith(SpringExtension.class)//单元测试框架
@ContextConfiguration("classpath:applicationContext-annotation.xml")//加载配置文件
//@SpringJUnitConfig(locations = "classpath:applicationContext-annotation.xml")//符合注解实现(等价于上面两个注解)
public class Junit5Test {
    @Autowired
    private AccountDao accountDao;
    @Test
    public void test1(){
        accountDao.transfer("张无忌","赵敏",200);
        System.out.println("转账完成...");
    }
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智商三岁半i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值