天天看点

《Spring 3.X 企业应用开发实战》摘记 【IOC】一、IOC的概念二、注入的方式三、如何实现其注入呢?

ioc(inverse of control )控制反转,原本自身控制自身的权利转移到了其他身上。ioc是一个“协议”,或者理论。需要涉及到代码解耦,设计模式等一些问题考量。

其中包含了两层内容:控制 + 反转。意思明了

后来,ioc由于是种理论需要实战 — 就出现了依赖注入。

di(dependency injection)依赖注入:即调用类让某一接口的实现类的依赖关系有第三方(容器或者协作类)注入,以移除调用类对某一接口实现类的依赖。这里就是将实战的武功秘籍传授了。实现类与类的依赖关系。

ioc容器还提供了bean实例缓存、生命周期管理、bean实例代理、事件发布、资源装载等高级服务。

依赖注入有三种注入方式:

1、通过构造函数注入 2、通过属性注入(常用方式) 3、接口注入

那就涉及到相关的知识点,比如反射(类装载器 和 反射机制)、资源访问机制

a. 反射(reflect)

b. 资源装载器

资源,考虑资源的来源。可能是本地的file(jar、zip等),网络的url(ftp等)。spring提供的resource接口比jdk访问资源api更强大个好用。其实就是一种vfs的特例吧。

1. 读取配置文件时,ant风格资源地址支持3中匹配符:

?:匹配一个字符 *:任意一个字符 **:匹配多层路径

resource 与 resourceloader uml图:

《Spring 3.X 企业应用开发实战》摘记 【IOC】一、IOC的概念二、注入的方式三、如何实现其注入呢?

beanfactory类继承体系:

《Spring 3.X 企业应用开发实战》摘记 【IOC】一、IOC的概念二、注入的方式三、如何实现其注入呢?

applicationcontext主要实现类:

a. classpathxmlapplicationcontext 从类路径加载配置文件

b. filesystemxmlapplicationcontext 从文件系统加载配置文件

spring用于启动webapplicationcontext的servlet和web容器监听器

待续。。。