依賴注入(DI)是一個過程,通過這個過程,物件可以通過建構函式引數,工廠方法的引數或者在構造或返回物件例項後設定的屬性來定義它們的依賴關係從工廠方法。然後容器在建立bean時注入這些依賴關係。這個過程從根本上說是相反的,因此名為控制反轉(IoC),它本身通過使用類的直接構造或服務定位符模式來控制它自己的依賴關係的例項化或位置。
DI 實現過程中,我們最常見的一種方法就是使用settern方法來實現我們的屬性注入,
更多依賴注入(DI)相關技術推薦閱讀:《Spring依賴注入(DI)詳解》
1.準備屬性資料 UserDao 和 UserService
/**
* @author 上海尚學堂
* 瞭解更多 加V:java8733
*
*/
public class UserDao {
public String userLogin () {
return "我是 UserDao -----> userLogin();
}
}
我們需要將 UserDao 注入到 UserService中
/**
* @author 上海尚學堂
* 瞭解更多 加V:java8733
*/
public class UserService {
private UserDao userDao ;
public void userLogin () {
String res = userDao.userLogin();
System.out.println(res);
}
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
}
2.Spring的配置檔案 spring-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="userDao" class="com.shsxt.demo.UserDao"></bean>
<!-- 第一種 setter注入 -->
<bean id= "userService" class = "com.shsxt.demo.UserService">
<property name="userDao" ref="userDao"></property>
</bean>
</beans>
在bean標籤中通過property 屬性來完成 屬性注入。
3.注意事項
通過上述的配置我們將完成 setter的注入方式注入,特別注意的是我們關於屬性需要提供setter這樣的方式。