1. 程式人生 > >spring 注入的三種方法

spring 注入的三種方法

  自己總結下  比較淺的 理解 適合 初學者:

  1.構造方法 注入

         直接上程式碼  

 <!-- 構造方法注入 -->
    <bean id="testservice" class="com.javen.service.impl.ITestServiceImpl">
        <constructor-arg ref="testDaoImpl"></constructor-arg>
   </bean>
    
    <bean id ="testDaoImpl" class="com.javen.dao.testDaoImpl"/>

    先在spring配置檔案中,一個bean class指向你個物件 的路徑,就比如上面的testDaoImpl。在寫個bean物件,指向service的物件路徑,   在bean加  <constructor-arg/> 屬性  。     <constructor-arg/>的意思就是通過建構函式注入。

public class ITestServiceImpl implements TestService{

	private testDao testDaoImpl;
	
	
	public ITestServiceImpl(testDao testDaoImpl) {
		this.testDaoImpl = testDaoImpl;
	}



	
	public static void main(String[] args) {
		
		ClassPathXmlApplicationContext cx = new ClassPathXmlApplicationContext("spring-mybatis.xml");
	   ITestServiceImpl service = (ITestServiceImpl) cx.getBean("testservice");
	
	   service.testDS();
	}




	@Override
	public void testDS() {
		testDaoImpl.doTest();		
	}

}

在ITestServiceImpl 通過構造方法注入testDao,為能夠訪問Dao的方法  如上面程式碼, 在service實現類中加一個屬性。(屬性名要和 你在配置檔案bean裡的屬性constructor-arg的ref 保持一致)。 然後在service 類中寫個有引數的建構函式。這樣就注入Dao ,在service裡就可以訪問Dao的方法。 我這裡Dao的方法就是一條列印語句。測試成功 說明Dao成功注入了service類中

2.set get 注入方法

<!-- set get方法注入 -->     <bean id="testservice" class="com.javen.service.impl.ITestServiceImpl">         <property name="testDaoImpl" ref="testDaoImpl"></property>    </bean>          <bean id ="testDaoImpl" class="com.javen.dao.testDaoImpl"/>

和構造注入異曲同工之妙。

private testDao testDaoImpl;          public testDao getTestDaoImpl() {         return testDaoImpl;     }

    public void setTestDaoImpl(testDao testDaoImpl) {         this.testDaoImpl = testDaoImpl;     }

3. 使用spring的註解來注入

  在要注入的Dao 的屬性上 加 @Autowired。

就先這樣吧!!!!!!