1. 程式人生 > >Spring 註解實現Bean依賴注入之@Required

Spring 註解實現Bean依賴注入之@Required

對應於基於XML配置中的依賴檢查,但XML配置的依賴檢查將檢查所有setter方法;

基於@Required的依賴檢查表示註解的setter方法必須,即必須通過在XML配置中配置setter注入,如果沒有配置,在容器啟動時會丟擲異常,從而保證在執行時不會遇到空指標異常,@Required只能放置在setter方法上,且通過XML配置的setter注入,可以使用如下方式來指定:

java程式碼:

@Requried  
setter方法 

1、準備測試Bean

package cn.javass.spring.chapter12;  
public class TestBean {  
    private String message;  
    @Required  
    public void setMessage(String message) {  
        this.message = message;  
    }  
    public String getMessage() {  
        return message;  
    }  
}  

2、在Spring配置檔案 新增如下Bean配置:
<bean id="testBean" class="cn.javass.spring.chapter12.TestBean">  
<property name="message" ref="message"/>  
</bean>  
<bean id="message" class="java.lang.String">  
    <constructor-arg index="0" value="hello"/>  
</bean>  
3、測試類和測試方法如下:
package cn.javass.spring.chapter12;  
//省略import  
public class DependencyInjectWithAnnotationTest {  
    private static String configLocation = "classpath:chapter12/dependecyInjectWithAnnotation.xml";  
    private static ApplicationContext ctx = new ClassPathXmlApplicationContext("configLocation");  
    //1、Spring自帶依賴注入註解  
     @Test  
    public void testRequiredForXmlSetterInject() {  
        TestBean testBean = ctx.getBean("testBean", TestBean.class);  
        Assert.assertEquals("hello", testBean.getMessage());  
    }  
}  

在XML配置檔案中必須指定setter注入,否則在Spring容器啟動時將丟擲如下異常:

相關推薦

Spring 註解實現Bean依賴注入@Required

對應於基於XML配置中的依賴檢查,但XML配置的依賴檢查將檢查所有setter方法; 基於@Required的依賴檢查表示註解的setter方法必須,即必須通過在XML配置中配置setter注入,如果沒有配置,在容器啟動時會丟擲異常,從而保證在執行時不會遇到空指標異常,@Required只能放置在set

Spring 註解實現Bean依賴注入@Qualifier

三、@Qualifier:限定描述符,用於細粒度選擇候選者; @Autowired預設是根據型別進行注入的,因此如果有多個型別一樣的Bean候選者,則需要限定其中一個候選者,否則將丟擲異常 @Qualifier限定描述符除了能根據名字進行注入,更能進行更細粒度的控制如何選擇

[學習筆記]Spring註解實現Bean

12.4  基於Java類定義Bean配置元資料 12.4.1  概述 基於Java類定義Bean配置元資料,其實就是通過Java類定義Spring配置元資料,且直接消除XML配置檔案。 基於Java類定義Bean配置元資料中的@Configuration註解的類等價於XML配置檔案

Spring註解實現Bean定義

12.3.1  概述 前邊介紹的Bean定義全是基於XML方式定義配置元資料,且在【12.2註解實現Bean依賴注入】一節中介紹了通過註解來減少配置數量,但並沒有完全消除在XML配置檔案中的Bean定義,因此有沒有方式完全消除XML配置Bean定義呢?

spring原始碼閱讀(1)- ioc依賴注入bean載入

還是先看下DefaultListableBeanFactory的類結構圖  我們從User user = (User) beanFactory.getBean("user");入手進入bean的載入管理流程。 這裡還是堅持走主線的流程,去掉無關的枝葉,儘量讓業務變得簡

spring 框架中的依賴注入(IOC--設值注入)--使用註解--的具體例項的簡單實現

體現了具體專案工程裡面的分層,dao,daoImpl,service,serviceImpl,action。讓你真正的理解這為啥分層。 順便清清楚楚的理解@Component、@Service、@Re

Spring筆記七(Types of Injection) Spring的三種依賴注入實現型別

本文研究Spring的三種依賴注入實現型別——介面注入(Interface Injection)、設值注入(Setter Injection)、構造子注入(Constructor Injection)。 Type1 介面注入: 傳統的建立介面物件的方法, 藉助介面來將呼叫者與

spring 框架中的依賴注入(IOC--設值注入)---使用xml簡單配置檔案---的具體例項的簡單實現

體現了具體專案工程裡面的分層,dao,daoImpl,service,serviceImpl,action。讓你真正的理解這為啥分層。 畢竟當年我剛剛畢業的時候,再找工作我就不是很清楚為什麼有這麼幾層

spring boot 學習(三) — 依賴注入 @Bean

spring 4推薦的@Configuration 和@bean 的用法,這樣我們可以省去繁瑣的配置檔案 第一步 建一個Maven工程 第二步新增依賴  pom.xml <?xml version="1.0" encoding="UTF-8"?> <pro

依賴注入Bean的例項化

上一篇分析到了通過遞迴的方式獲取Bean的所有依賴,接下來就該例項化Bean了。 對於例項化Bean,Spring提供了兩種方式,一種是Jdk的反射功能,還有一種就是Cglib。這兩種例項化的方式的區別是什麼呢? 依賴注入的起點是getBean方法,然後

Spring 學習筆記 - IOC/依賴注入

簡述: Spring 學習 - IOC/依賴注入 1. Bean 的例項化 1) 直接使用原始類建立bean <bean id="exampleBean" class="com.anialy.test.ExampleBean" /> 2) 使用工廠方法建立

1.Spring、IOC與依賴注入

 Spring概述 Spring是分層的Java SE/EE應用 full-stack輕量級開源框架,以IoC(Inverse Of Control:反轉控制)和 AOP(Aspect Oriented Programming:面向切面程式設計)為核心,提供了展現層Spr

spring3零配置註解實現Bean定義(包括JSR-250、JSR-330)

 註解實現Bean定義  概述 前邊介紹的Bean定義全是基於XML方式定義配置元資料,且在【12.2註解實現Bean依賴注入】一節中介紹了通過註解來減少配置數量,但並沒有完全消除在XML配置檔案中的Bean定義,因此有沒有方式完全消除XML配置Be

5.spring:註解配置 Bean

在classpath中掃描元件 組鍵掃描:能夠從classpath下自動掃描,偵測和例項化具有特定註解的元件 特定的元件包括: ->@Componment:基於註解,標識一個受Spring管理的組鍵 ->@Respository:標識持久層元件 ->@Service:標識服務層 ->

Spring容器和bean注入(1)

第一節 在IOC容器中裝配Bean 1.1Spring容器成功啟動條件 1.匯入Spring框架相關的jar包 2.正確配置spring配置檔案 3.Bean的類都已放到應用程式的類路徑下 1.2Bean配置資訊的組成 Bean配置資

Spring(17) 依賴注入後的行為

其實就是在對bean進行各種賦值初始化後讓bean執行某個動作。 可以讓bean實現InitializingBean介面,然後重寫afterProperties()方法,這樣就可以讓bean在初始化之後自動執行afterProperties()方法。

Spring 控制反轉(IOC) | 依賴注入(DI)的解析

學習過Spring框架的人一定都會聽過Spring的IoC(控制反轉) 、DI(依賴注入)這兩個概念,對於初學Spring的人來說,總覺得IoC 、DI這兩個概念是模糊不清的,是很難理解的,今天和大家分享網上的一些技術大牛們對Spring框架的IOC的理解以及談談我對Spri

Spring AOP切面類依賴注入的正確姿勢

在某些場景下需要將Spring的Bean注入到Spring AOP切面的屬性中。 類似下面程式碼: @Aspect public class SomeAspect { @Inject private SomeService someService; @Be

Spring學習筆記一(Spring容器和bean注入

第一節 在IOC容器中裝配Bean 1.1Spring容器成功啟動條件 1.匯入Spring框架相關的jar包 2.正確配置spring配置檔案 3.Bean的類都已放到應用程式的類路徑下 1.2Bean配置資訊的組成 Bean配置資訊是Bean的元資料資訊(

spring 註解裝配bean (裝配bean 二)

註解裝配bean 最簡單的例子 @Component("role") public class Role { @Value("1") private Long id; @Value("zhangsan") private String roleNam