1、Spring5-Spring5框架新功能-《Java学习知识库》

admin 2025-11-02 01:26:43 编程 来源:ZONE.CI 全球网 0 阅读模式
  • 2、Spring 5.0 框架自带了通用的日志封装
  • 3、Spring5 框架核心容器支持@Nullable 注解
  • 4、Spring5 核心容器支持函数式风格GenericApplicationContext
  • 5、Spring5 支持整合 JUnit5

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

    2、Spring 5.0 框架自带了通用的日志封装

    (1)Spring5 已经移除 Log4jConfigListener,官方建议使用 Log4j2 (2)Spring5 框架整合 Log4j2 第一步 引入 jar 包QQ截图20220424081526.png第二步 创建 log4j2.xml 配置文件

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
    3. <!--Configuration 后面的 status 用于设置 log4j2 自身内部的信息输出,可以不设置,
    4. 当设置成 trace 时,可以看到 log4j2 内部各种详细输出-->
    5. <configuration status="INFO">
    6. <!--先定义所有的 appender-->
    7. <appenders>
    8. <!--输出日志信息到控制台-->
    9. <console name="Console" target="SYSTEM_OUT">
    10. <!--控制日志输出的格式-->
    11. <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    12. </console>
    13. </appenders>
    14. <!--然后定义 logger,只有定义 logger 并引入的 appender,appender 才会生效-->
    15. <!--root:用于指定项目的根日志,如果没有单独指定 Logger,则会使用 root 作为
    16. 默认的日志输出-->
    17. <loggers>
    18. <root level="info">
    19. <appender-ref ref="Console"/>
    20. </root>
    21. </loggers>
    22. </configuration>

    3、Spring5 框架核心容器支持@Nullable 注解

    (1)@Nullable 注解可以使用在方法上面,属性上面,参数上面,表示方法返回可以为空,属性值可以 为空,参数值可以为空 (2)注解用在方法上面,方法返回值可以为空QQ截图20220424083015.png

    (3)注解使用在方法参数里面,方法参数可以为空QQ截图20220424083104.png(4)注解使用在属性上面,属性值可以为空QQ截图20220424083214.png

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

    1. //函数式风格创建对象,交给 spring 进行管理
    2. @Test
    3. public void testGenericApplicationContext() {
    4. //1 创建 GenericApplicationContext 对象
    5. GenericApplicationContext context = new GenericApplicationContext();
    6. //2 调用 context 的方法对象注册
    7. context.refresh();
    8. context.registerBean("user1", User.class, () -> new User());
    9. //3 获取在 spring 注册的对象
    10. // User user = (User)context.getBean("com.atguigu.spring5.test.User");
    11. User user = (User) context.getBean("user1");
    12. System.out.println(user);
    13. }

    5、Spring5 支持整合 JUnit5

    (1)整合 JUnit4 第一步 引入 Spring 相关针对测试依赖QQ截图20220424084747.pngQQ截图20220424085928.png第二步 创建测试类,使用注解方式完成

    1. @RunWith(SpringJUnit4ClassRunner.class) //单元测试框架
    2. @ContextConfiguration("classpath:bean1.xml") //加载配置文件
    3. public class JTest4 {
    4. @Autowired
    5. private UserService userService;
    6. @Test
    7. public void test1() {
    8. userService.accountMoney();
    9. }
    10. }

    @ContextConfiguration(“classpath:bean1.xml”) //加载配置文件类似于ApplicationContext context = new ClassPathXmlApplicationContext(“bean1.xml”);(2)Spring5 整合 JUnit5 第一步 引入 JUnit5 的 jar 包QQ截图20220424090306.png第二步 创建测试类,使用注解完成

    1. @ExtendWith(SpringExtension.class)
    2. @ContextConfiguration("classpath:bean1.xml")
    3. public class JTest5 {
    4. @Autowired
    5. private UserService userService;
    6. @Test
    7. public void test1() {
    8. userService.accountMoney();
    9. }
    10. }

    (3)使用一个复合注解替代上面两个注解完成整合

    1. @SpringJUnitConfig(locations = "classpath:bean1.xml")
    2. public class JTest5 {
    3. @Autowired
    4. private UserService userService;
    5. @Test
    6. public void test1() {
    7. userService.accountMoney();
    8. }
    9. }
    以太坊cppgolang区别 编程

    以太坊cppgolang区别

    以太坊是一种去中心化的开源平台,它采用智能合约技术,旨在构建和运行不受干扰的分布式应用程序。作为目前最受欢迎的区块链平台之一,以太坊提供了多种编程语言的支持,其
    progolang 编程

    progolang

    Go语言(Golang)是由Google开发的一门静态类型编程语言。作为一名专业的Golang开发者,我深知这门语言的优势和特点。在本文中,我将介绍Golang
    golangn个发送者 编程

    golangn个发送者

    Golang是一种开源的编程语言,由Google团队开发,旨在提高程序的并发性和简化软件开发过程。在Go语言中,有时需要向多个接收者发送信息。本文将介绍如何在G
    golang技能图谱 编程

    golang技能图谱

    从互联网行业的快速发展到人工智能技术的日益成熟,各种编程语言也应运而生。而在这众多的编程语言中,Golang(即Go)作为一门强大且高效的开发语言备受关注。Go
    评论:0   参与:  5