一、先看这个类图
BaseService和BaseRepository有一个引用关系,这样BaseService可以方便调用BaseRepository已经定义好的方法。它们都有自己的实现类,如果它们都提供了泛型,那么它们的子类间会自动建立引用关系。
如上图所示,UserService和UserRepository,RoleService和RoleRepository之间有引用关系。
二、下面来看代码
BaseService.java
public class BaseService<T>{
@Autowired
protected BaseRepository<T> repository;
public void add(){
System.out.println("add........");
System.out.println(repository);
}
}
UserService.java
@Service
public class UserService extends BaseService<User> {
}
BaseRepository.java
public class BaseRepository<T> {
}
UserRepository.java
@Repository
public class UserRepository extends BaseRepository<User> {
}
User.java
public class User {
}
main.java
public class Main {
public static void main(String[] args) {
ApplicationContext c=new ClassPathXmlApplicationContext(“generic.xml”);
UserService userService=(UserService)c.getBean(“userService”);
userService.add();
}
}
重点内容运行结果
add........
spring.di.UserRepository@37d31475