【Spring 5】新功能


整個 Spring5 框架的代碼基於 Java8,運行時兼容 JDK9, 許多不建議使用的類和方
法在代碼庫中刪除

整合日誌功能

(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>

@Nullable 註解

  1. Spring5 框架核心容器支持@Nullable 註解
  2. @Nullable 註解可以使用在方法上面,屬性上面,參數上面,表示方法返回可以爲空,屬性值可以爲空,參數值可以爲空
  • 註解用在方法上面,方法返回值可以爲空
    在這裏插入圖片描述

  • 註解使用在方法參數裏面,方法參數可以爲空
    在這裏插入圖片描述

  • 註解使用在屬性上面,屬性值可以爲空
    在這裏插入圖片描述

函數式註冊對象

Spring5 核心容器支持函數式風格,也就是lambda表達式
我們用函數式風格自己new的對象,Spring是不知道的,我們需要註冊一下,就要用到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("com.atguigu.spring5.test.User");
User user = (User)context.getBean("user1");
System.out.println(user);
}

支持整合 JUnit5

整合 JUnit4

第一步 引入 Spring 相關針對測試依賴
在這裏插入圖片描述
第二步 創建測試類,使用註解方式完成

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

Spring5 整合 JUnit5

JUnit5增加了新的註解

@ExtendWith(SpringExtension.class) 註解引用

第一步 引入 JUnit5 的 jar 包
在這裏插入圖片描述
第二步 創建測試類,使用註解完成

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

@SpringJUnitConfig 複合註解

使用一個複合註解替代上面兩個註解完成整合

@SpringJUnitConfig(locations = "classpath:bean1.xml")
public class JTest5 {
   
     
@Autowired
private UserService userService;
@Test
public void test1() {
   
     
userService.accountMoney();
}
}

Webflux

SpringWebflux 介紹



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章