Spring4.0可以为子类注入子类的泛型类型,成员变量的引用
BaseService<T>:有RoleService和UserService两的子类
BaseRepepositry<T>:有UserRepository和RoleRepositry两个子类
因为BaseService<T>继承 BaseRepepositry<T> ,得出下面的子类也存在这样的关系
代码:
User.java
BaseService.java
UserService.java
BaseRepository.java
UserRepository.java
Main.java
输出结果:
BaseService<T>:有RoleService和UserService两的子类
BaseRepepositry<T>:有UserRepository和RoleRepositry两个子类
因为BaseService<T>继承 BaseRepepositry<T> ,得出下面的子类也存在这样的关系
代码:
User.java
public class User {
}
BaseService.java
import org.springframework.beans.factory.annotation.Autowired;
public class BaseService<T> {
@Autowired
protected BaseRepository<T> repository;
public void add(){
System.out.println("adding....");
System.out.println(repository);
}
}
UserService.java
import org.springframework.stereotype.Repository;
@Repository
public class UserService extends BaseService<User>{
}
BaseRepository.java
public class BaseRepository<T> {}
UserRepository.java
import org.springframework.stereotype.Repository;
@Repository //交给IOC容器来管理
public class UserRepository extends BaseRepository<User>{}
Main.java
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Main {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(
"applicationContext.xml");
UserService userService = (UserService) applicationContext.getBean("userService");
userService.add();
}
}
输出结果:
adding....
com.spring.txing.UserRepository@7174d93a