包含内容:什么是Ioc,作用,bean的创建,方式,配置,集合,作用域,不同作用与的bean依赖等
Ioc控制反转(Inversion of Control) 也被叫作DI依赖注入(Dependency Injection).在程序设计中经常使用到组合的形式,就是在一个类中使用到其他类的对象。Ioc就是用来当这个类实例化时,它里面所使用到的相关对象也会被实例化。实例化的方式有①构造器参数②方法参数③属性。
Spring容器启动是通过BeanFactory或ApplicationContext读取配置文件,该配置文件基本配置如下:

实例化容器方法:
ApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"service.xml","daos.xml"});
service.xml代码如下:

daos.xml代码如下:

由配置文件可知PetStroreServiceImpl有两个成员变量SqlMapAccountDao和SqlMapItemDao
这样在创建PetStroreServiceImpl时,Spring Ioc也会实例化另外两个实例变量。
可以通过import属性,将配置文件分开,便于管理。

注意文件的位置,service.xml使用的相对路径必须在当前目录下有service.xml文件.对于messageSource.xml和themeSource.xml必须在resources下,前面的斜杠可以带可以不带,但一般不建议有。
容器使用:

配置文件中,每个

对bean的实例化:
1.最最基本的配置:

2.通过静态工场方法:

3.通过实体工场方法:< http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGltZyBzcmM9"https://www.cppentry.com/upload_files/article/76/1_koqsp__.jpg" alt="\">

依赖注入:

由上可知:依赖注入可以通过三种方式进行1.构造器参数;2工厂方法参数;3属性注入。





















通过方法注入。大多数应用场景中我们使用到的bean是单例的,但是存在一种情况,就是一个单例的类中含有某个非单例的成员变量。

Bean的作用域:

当定义一个Bean的作用域定义为Singleton时,spirng Ioc容器会创建一个实例放入缓存中,对于所有的请求将都会返回缓存中的这个Bean。且spring默认bean为单例。

Prototype作用域:

Spirng容器不管理prototype Bean的整个生命周期。

在一个单例的bean里面拥有prototype-bean:

Request,Session,Global Session三个作用域是结合web之后才有的作用域。初始化web配置:

web不同作用域间的bean的相互依赖定义:


下面这种情况与上面对比:注意不同

自定义作用域需要实现org.springframework.beans.factory.config.Scope接口
这种情况感觉使用比较少,就不看了。