Spring 泛型依赖注入(3)

BaseService<T>:有RoleService和UserService两的子类

BaseRepepositry<T>:有UserRepository和RoleRepositry两个子类

由于BaseService<T>和BaseRepepositry<T>有关系所以,得出下面的子类也存在这样的关系

具体代码

1、User.java

1 package com.proc.bean;
2 
3 public class User {
4 
5 }

2、BaseRepository.java

1 package com.proc.repository;
2 
3 public class BaseRepository<T> {
4 
5 }

3、BaseService.java

复制代码
 1 package com.proc.service;
 2 
 3 import org.springframework.beans.factory.annotation.Autowired;
 4 
 5 import com.proc.repository.BaseRepository;
 6 
 7 public class BaseService<T> {
 8 
 9     @Autowired
10     protected BaseRepository<T> baseRepository;
11     
12     public void save(){
13         System.out.println("save ………………");
14         System.out.println(baseRepository);
15     }
16 }
复制代码

4、UserRepository.java

复制代码
 1 package com.proc.repository;
 2 
 3 import org.springframework.stereotype.Repository;
 4 
 5 import com.proc.bean.User;
 6 
 7 @Repository
 8 public class UserRepository extends BaseRepository<User> {
 9 
10 }
复制代码

5、UserService.java

复制代码
 1 package com.proc.service;
 2 
 3 import org.springframework.stereotype.Service;
 4 
 5 import com.proc.bean.User;
 6 
 7 @Service
 8 public class UserService extends BaseService<User>{
 9     
10 }
复制代码

6、xml配置

<context:component-scan base-package="com.proc" />

7、代码测试

1 ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
2 UserService userService=(UserService) ctx.getBean("userService");
3 userService.save();

输出结果:

save ………………
com.proc.repository.UserRepository@15bfd87

这里可以看到对象的类型为UserRepository

原文地址:https://www.cnblogs.com/weiqingfeng/p/9497969.html