Spring依賴注入的方式
阿新 • • 發佈:2020-11-25
一、依賴注入方式
依賴注入就是通過spring將bean所需要的引數傳遞到bean例項物件的過程
1.屬性注入
<!-- 屬性注入 -->
<bean id="car" class="com.spring.model.Car">
<property name="maxSpeed" value="200"></property>
<property name="brand" value="紅旗CA72"></property>
<property name="price" value="200000.00"></property>
</bean>
例項物件中寫get(),set()方法,<property>中的name屬性與例項物件中的屬性相對應
//屬性注入 @Test public void test(){ //讀取配置檔案 ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml"); //獲取bean的例項 Car car=(Car) ctx.getBean("car"); car.run(); }
2、建構函式注入
<!-- 建構函式注入(通過入參型別和位置索引確定對應關係) --> <!-- 對應public Car(String brand, String corp,intmaxSpeed)建構函式 --> <bean id="car3" class="com.spring.model.Car"> <constructor-arg index="0" type="java.lang.String" value="賓士"></constructor-arg> <constructor-arg index="1" type="java.lang.String" value="中國一汽"></constructor-arg> <constructor-arg index="2" type="int" value="200"></constructor-arg> </bean>
例項物件中寫構造方法,<constructor-arg>中的index索引和type變數型別和建構函式的引數相對應
3、註解
1.@Autowried
1)預設基於型別查詢容器的的Bean進行注入(注入的Bean的實現類是唯一的)。
3)@Autowried註解可以標註在構造方法、set方法(屬性)、欄位
@Qualifier標註在方法引數、set方法、欄位上、型別上
@Primary標註在類上以及方法上
2.@Resource(JSR250的標準)
1)預設是基於Bean的名稱進行注入,如果查詢的name不存在,則會根據型別進行查詢
2)當指定name屬性時,則只按照名稱進行查詢
3)當指定type屬性時,則只按照型別進行查詢
4)當指定name和type時,則這兩個屬性必須同時滿足才可注入