Spring IOC 三種注入方式(構造器,setter,接口)


Spring的依賴注入有三種方式:

1,構造器注入

2,setter注入

3,接口注入

 

下面我給大家介紹一下這三種注入

1.構造器注入

  構造器注入主要是依賴於構造方法去實現,構造方法可以是有參也可以是無參,我們在平常都是通過類的構造方法來創建類對象,以及給他賦值,同樣Spring 也可以采用反射的方式,通過構造方法來完成注入注入(賦值),這就是構造器注入的原理,說了那么多我們就來看看代碼的實現吧

 

/**
*
*  構造器注入   
*
*/

package com.xiaojiang.Spring;

public class Role {
	
	private int id;
	private String roleName;
	private String note;
	
	public Role(){}
	
	public Role(int id,String roleName, String note)
	{
          super(); this.id = id; this.roleName = roleName; this.note = note; }

       //setter,getter方法省略 }

applicationContext.xml文件

<!--構造器配置-->

<bean id="Role" class="com.xiaojiang.Spring.Role">
		<constructor-arg value="1" type="int"></constructor-arg>
		<constructor-arg value="小江" type="java.lang.String"></constructor-arg>
		<constructor-arg value="有點丑" type="java.lang.String"></constructor-arg>
	</bean>

 constructor-arg元素用於定義類構造方法的參數,其中type用於定義參數的類型,也可以使用index來定義參數的位置,而這里的value是用於設置值,以上的代碼就是通過一個Spring去裝配一個Bean。

2.setter注入

  setter是Spring現在最主流的注入方式,它可以利用Java Bean 規范所定義set/get方法來完成注入,可讀性靈活性高,它不需要使用構造器注入時出現的多個參數,它可以把構造方法聲明成無參構造,再使用setter注入設置相對應的值,其實也是通過java反射技術去實現的.

類里面的代碼set和get方法我就省略了,下面直接上xml代碼

<!--配置setter注入-->
<bean id="Role" class="com.xiaojiang.Spring.Role">
        <property name="id" value="1"><property>
        <property name="roleName" value="小江"><property>
        <property name="note" value="測試"><property>
</bean>    

 以上方式就是Spring最主要的方式了,使用廣泛

3.接口注入

      接口注入模式因為歷史較為悠久,在很多容器中都已經得到應用。但由於其在靈活性、易用性上不如其他兩種注入模式,因而在 IOC 的專題世界內並不被看好。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM