【Spring5】新功能(日志、单元测试)

Spring框架新功能

日志、单元测试

  1. 整个Spring5框架基于java8,运行时兼容java9,许多不建议使用的类和方法在代码库中删除

  2. Spring5框架自带了通用的日志封装

    1. Spring5已经移除Log4jConfigListener,官方建议使用Log4j2
    2. Spring5框架整合Log4j2

    步骤

    1. 引入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>
      
  3. Spring5框架核心容器支持@Nullable注解

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

    2. 注解用在方法上面,方法返回值可以为空

    3. 注解用在参数上面,表示参数可以为空

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wHZ0Vcio-1649666660262)(Spring概述.assets/image-20220411160620269.png)]

    4. 注解方法用在属性上面,表示属性值可以为空

  4. Spring5核心容器支持函数式风格GenericApplicationContext

    1. 函数风格创建对象,交给Spring进行管理

      @Test
      public void testGenerucApplicationContext(){
          //创建GenerucApplicationContext对象
          GenericApplicationContext genericApplicationContext = new GenericApplicationContext();
          //调用genericApplicationContext方法的对象注册
          genericApplicationContext.refresh();
          genericApplicationContext.registerBean("User1",User.class,() -> new User());
          //获取在Spring注册的对象
          //User user = (User) genericApplicationContext.getBean("com.cwy.day04.User");//这里通过路径找对象
          User user = (User) genericApplicationContext.getBean("User1");
          System.out.println(user);
      }
      
  5. Spring5支持整合JUnit5

    1. 整合JUnit4

      1. 引入Spring相关针对测试依赖 spring-test-5.2.6.RELEASE.jar

      2. 创建测试类,使用注解方式完成

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

      1. 引入相关jar包

      2. 创建测试类,使用注解方式完成

        @ExtendWith(SpringExtension.class)
        @ContextConfiguration("classpath:beans3.xml")  //加载配置文件
        public class JTest5 {
            @Autowired
            private UserService userService;
        
            @Test
            public void test1(){
                userService.accountMoney();
            }
        }
        
      3. 使用一个复合注解替代上面两个注解完成整合

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序猿研究僧

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

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

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

打赏作者

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

抵扣说明:

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

余额充值