泛型依賴注入為spring4.0版本新增加的特性。
目錄結構
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISO4YTNycTM3EzNycDM1EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
BaseService.java類
public class BaseService<T> {
@Autowired
private BaseRespository baseRespository;
public void save() {
System.out.println("Base Class save method");
System.out.println(baseRespository);
}
}
輸出baseRespository對象。
BaseRespository.java類
public class BaseRespository<T> {
}
UserRespository.java
@Repository
public class UserRespository extends BaseRespository<User> {
}
UserService.java
@Service
public class UserService extends BaseService<User> {
}
User.java
public class User {
}
IOC容器配置
<context:component-scan base-package="com.gp.spring.annotation.fanxing"></context:component-scan>
配置注解的掃描包
測試方法
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext(
"spring_fanxing.xml");
UserService us = (UserService)context.getBean("userService");
us.save();
}
輸出結果
Base Class save method
[email protected]
最後結果我們注意到BaseRespository對象類型變成UserRespository子類對象類型。
使用了泛型的好處就是,代碼簡潔,僅通過一個BaseService我們就可以實作類的共性方法,比如增删改查。