Spring中的泛型依赖注入简单实现
2020-07-18 04:54
363 查看
Spring中的泛型依赖注入简单实现
Spring中的泛型依赖注入是Spring4.0新添加的功能,下面通过几个实例来演示这个功能。
首先创建
Book和
User类,无内容,创建过程省略。
然后创建
BaseDao接口
public interface BaseDao<T> { public abstract void save(); }
创建
BookDao和
UserDao两个类实现
BaseDao接口
@Repository public class BookDao implements BaseDao<Book>{ @Override public void save() { System.out.println("BookDao...save()..."); } }
@Repository public class UserDao implements BaseDao<User> { @Override public void save() { System.out.println("UserDao...save()..."); } }
为
Book和
User两个类创建Service层对象
@Service public class BookService { @Autowired private BookDao bookDao; public void save() { System.out.println("这里是BookService,正在调用BookDao方法"); bookDao.save(); } }
@Service public class UserService { @Autowired private UserDao userDao; public void save() { System.out.println("这里是UserService,正在调用UserDao方法"); userDao.save(); } }
在
Service层中使用了
@Autowired来实现自动装配,经过测试
@Test public void test() { ApplicationContext ac = new ClassPathXmlApplicationContext("ioc.xml"); BookService bean1 = ac.getBean(BookService.class); UserService bean2 = ac.getBean(UserService.class); bean1.save(); bean2.save(); }
得到结果
这里是BookService,正在调用BookDao方法 BookDao...save()... 这里是UserService,正在调用UserDao方法 UserDao...save()...
可以发现,Bean对象完成了自动装配。
BookDao和UserDao都实现了同一个接口BaseDao,那么我们可不可以通过BaseDao来完成自动装配呢?
我们新创建一个
BaseService类,并且对
BookService和
UserService进行改造
public class BaseService<T> { @Autowired private BaseDao<T> baseDao; public void save() { System.out.println("自动注入的Service,正在调用Dao方法"); baseDao.save(); } }
@Service public class BookService extends BaseService<Book>{ }
@Service public class UserService extends BaseService<User>{ }
重新进行测试,得到结果
自动注入的Service,正在调用Dao方法 BookDao...save()... 自动注入的Service,正在调用Dao方法 UserDao...save()...
可以看到,在调用
Dao层方法的时候,虽然没有明确类型,但是Spring依然根据
Service层中的泛型完成了依赖注入。
相关文章推荐
- 巧妙运用spring依赖注入实现简单工厂模式
- 使用XPath解析xml实现简单的Spring IOC完成bean的依赖注入
- Spring学习笔记(5)----依赖注入的简单实现
- Spring学习笔记(5)----依赖注入的简单实现
- 反射机制简单实现依赖注入,模拟单例模式,对spring单例模式不太理解者可看
- spring 框架中的依赖注入(IOC--设值注入)--使用注解--的具体实例的简单实现
- spring 框架中的依赖注入(IOC--设值注入)---使用xml简单配置文件---的具体实例的简单实现
- Spring学习笔记----依赖注入的简单实现
- Spring依赖注入的XML配置文件的实现思想(2)——简单的实现
- Spring简单依赖注入演示
- Spring 泛型依赖注入
- Spring如何实现自动依赖注入-------autowire
- Spring.Net 入门学习(一)实现控制器翻转与依赖注入
- Spring IoC依赖注入的实现
- Spring学习笔记之泛型依赖注入
- Autofac 依赖注入 ASP.NET MVC5 插件机制中插件的简单实现
- 详解 Spring 3.0 基于 Annotation 的依赖注入实现(转)
- 详解 Spring 3.0 基于 Annotation 的依赖注入实现
- Spring依赖注入的三种实现方式
- IoC/依赖注入、以及在Spring中的实现