目錄
泛型依賴注入,可以瞭解一下,如果想簡化代碼使用它也是一種選擇之一
一、知識點
Spring 4.x 中可以爲子類注入子類對應的泛型類型的成員變量的引用
二、例子
2.1 目錄結構
2.2 相關代碼
src右擊-->new-->XML Configuration File-->Spring config-->輸入名字“beans-generic-di”
<context:component-scan base-package="com.hualinux.beans.generic.di"/>
src-->com.hualinux.beans.generic.di.BaseRepositotory.java
package com.hualinux.beans.generic.di;
public class BaseRepositotory <T>{
}
src-->com.hualinux.beans.generic.di.UserRepositotory.java
package com.hualinux.beans.generic.di;
import org.springframework.stereotype.Repository;
@Repository
public class UserRepositotory extends BaseRepositotory<User> {
}
src-->com.hualinux.beans.generic.di.BaseService.java
package com.hualinux.beans.generic.di;
import org.springframework.beans.factory.annotation.Autowired;
public class BaseService<T> {
@Autowired
protected BaseRepositotory<T> repositotory;
public void add(){
System.out.println("add...");
System.out.println(repositotory);
}
}
src-->com.hualinux.beans.generic.di.User.java
package com.hualinux.beans.generic.di;
public class User {
}
src-->com.hualinux.beans.annotation.generic.dia.UserService.java
package com.hualinux.beans.generic.di;
import org.springframework.stereotype.Service;
@Service
public class UserService extends BaseService<User> {
}
src-->com.hualinux.beans.annotation.generic.di.Main.java
package com.hualinux.beans.generic.di;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Main {
public static void main(String[] args) {
ApplicationContext ctx=new ClassPathXmlApplicationContext("beans-generic-di.xml");
UserService userService= (UserService) ctx.getBean("userService");
userService.add();
}
}
運行上面的Main.java,結果如下:
add...
com.hualinux.beans.generic.di.UserRepositotory@71e9ddb4