一、@Nullable 注解
@Nullable 注解可以使用在方法、屬性、參數上,分別表示方法返回可以為空、屬性值可以為空、參數值可以為空。
我們可以在源碼里找到很多示例。
1. 用在方法上
方法的返回值可以為空。
2. 用在參數上
參數可以為空。
3. 用在屬性上
屬性值可以為空。
二、支持函數式風格
比如這里有一個類:
public class User {
public static void main(String[] args) {
User user = new User();
}
}
在 main 方法里手動創建了一個對象,但是這個並沒有交給 spring 管理,因為沒有注冊。
spring5 里支持函數式風格創建對象,並交給 spring 來管理。
@Test
public void testGeneric() {
// 創建 GenericApplicationContext 對象
GenericApplicationContext context = new GenericApplicationContext();
// 調用 context 對象的方法進行注冊,用 Lambda 表達式
context.refresh();
context.registerBean("user1", User.class, () -> new User());
// 獲取在 spring 中創建的對象
User user = (User) context.getBean("user1");
System.out.println(user);
}
運行測試:
com.pingguo.spring5.test.User@76707e36
Process finished with exit code 0