首页 > 编程知识 正文

spring 类注入,spring 接口和实现类注入

时间:2023-05-06 17:25:31 阅读:263581 作者:2845

关于spring注入这里,在开发过程中时常碰到,这里看到有人说的挺好的在这里做一下笔记。

这里虽是接口的注入但实际注入的对象是实现类的对象。如果只是单纯数据注入实现类是可以接收注入对象的,在开放中往往会对实现类增强,如事务、日志等,这些是通过AOP动态代理实现的。spring默认jdk动态代理,对实现类对象做增强得到的增强类与实现类是兄弟关系,所以不能用实现类接收增强类对象,只能用接口接收。

//接口:IA//实现类:AImpl//增强类:AImplProxyAImpl aImpl = new AImpl();//通过JDKProxyFactory创建代理对象JDKProxyFactory factory = new JDKProxyFactory(aImpl);AImplProxy aImplProxy = factory.createProxy();//这个增强类对象aImplProxy 只能强转为IA,而不能转为AImpl,因为JDK代理得到的AImplProxy类与AImpl是兄弟关系而非父子

 由于以上原因,如果将对象注入给实现类而非接口的话,在代理时就会报错。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。