您好,欢迎来到外链网!
当前位置:外链网 » 站长资讯 » 专业问答 » 文章详细 订阅RssFeed

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

来源:互联网 浏览:82次 时间:2023-04-08

关于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是兄弟关系而非父子

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

71568630