您的位置:首页 > 编程语言 > Java开发

Spring学习笔记之泛型依赖注入

2017-11-05 20:36 537 查看
泛型依赖注入
a8db
:子类之间的依赖关系由其父类泛型以及父类之间的依赖关系来确定,父类的泛型必须为同一类型。

通俗一点来说:两个子类之间的依赖关系不需要在子类中去声明,而是在父类中进行了声明,而依赖的纽带就是 泛型类型,必须是相同的父类泛型类型才具有依赖关系。

UML图例



说明:在 BaseService 中通过 @Autowired 注解自动装配了 BaseRepository 的实例。而在 UserService 中并没有注入 UserRepository 的实例,但是通过父类的泛型类型,

在 UserService 中已经注入了 UserDao 的实例。

举例

public class BaseService<T> {

@Autowired
protected BaseRepository<T> repository;

public void add() {
System.out.println("add...");
System.out.println(repository);
}
}


public class BaseRepository<T> {

}


@Service
public class UserService extends BaseService<User> {

}


@Repository
public class UserRepository extends BaseRepository<User>{

}


public class User {

}


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();
}
}


输出结果

add...
com.jhh.spring.beans.generic.di.UserRepository@66d1af89
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息