Spring的IOC实现

Inversion of control的原理实现:

自定义注解:


提供Bean的工厂,用于给代理获取然后注入到指定位置


Bean类接口及其实现类




需要注入类的对象,Bean由代理注入到@Cup注解处

代理类,用于完成对象的获取与注入

以上代码可实现更改Bean类的注解@Provide位置而提供不同的Bean已实现代理。其使用的主要技术为注解和反射。


Spring中的IOC实现:

Bean类工厂,用于提供Bean对象

@Component用于Spring识别,将该类交由Spring代理,作用于类。

@Bean是Spring用于注入的Bean类对象,作用于方法。

Bean类与其父接口并无任何改变


需要注入Bean对象的类

@Autowired表示Bean对象填充的位置,作用于方法。


Spring配置类:

@Configuration标识为配置类

@ComponentScan( { "..." , "...." , "...." } )

指示需要由Spring代理的类所在的包,其value值为一个String[],当有多个包时,其写法如同String数组。

测试类:

通过更改@Bean注解的位置可以实现代理

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容