壹、為了更加快捷的開發,為了更少的配置,特別是針對 Web 環境的開發,從 Spring 4.0 之後,Spring 引入了 泛型依賴註入。
二、泛型依賴註入:子類之間的依賴關系由其父類泛型以及父類之間的依賴關系來確定,父類的泛型必須為同壹類型。
通俗壹點來說:兩個子類之間的依賴關系不需要在子類中去聲明,而是在父類中進行了聲明,而依賴的紐帶就是 泛型類型,必須是相同的父類泛型類型才具有依賴關系。
三、UML 類圖:
說明:在 BaseService 中通過 @Autowired 註解自動裝配了 BaseDao 的實例。而在 UserService 中並沒有註入 UserDao 的實例,但是通過父類的泛型類型,
在 UserService 中已經註入了 UserDao 的實例。Department 與之類似。
四、例子:
public?class?BaseDao<T>?{
public?void?say()?{
System.out.println("com.nucsoft.spring.Dao.BaseDao.say");
}
}
public?class?BaseService<T>?{
@Autowired
public?BaseDao?baseDao;
public?void?service()?{
System.out.println(baseDao);
baseDao.say();
}
}
@Repository
public?class?UserDao?extends?BaseDao<User>{}
@Service
public?class?UserService?extends?BaseService<User>{}
@Test
public?void?test03()?{
UserService?userService?=?ctx.getBean(UserService.class);
userService.service();
}
控制臺輸出:
com.nucsoft.spring.Dao.UserDao@162a657e
com.nucsoft.spring.Dao.BaseDao.say