一、思想
1.IOC:
inverse of control 反转控制
将我们创建对象的方式反转
在以前对象的创建是由开发人员自己维护,包括依赖关系也是开发人员注入
但是使用Spring后,对象的创建以及依赖关系可以由Spring完成创建以及注入
反转控制就是反转了对象的创建方式,从而开发人员创建反转给了程序(Spring)
2.DI :
dependency injection 依赖注入
实现IOC思想需要DI做支持
注入方式:
set方法注入
构造方法注入
字段注入(不推荐)
注入类型:
值类型注入:八大基本类型
引用类型注入:将依赖对象注入
二、applicationContext&BeanFactory
1.BeanFactory接口(过时)
Spring最原始接口,针对原始接口的实现类功能较为单一
BeanFactory接口实现类的容器特点:每次在获得对象时才会创建对象
2.ApplicationContext接口
每次容器启动时就会创建容器中配置的所有对象,并提供更多功能
从类路径下查找/加载配置文件:ClassPathXmlApplicationContext(主要使用)
从硬盘绝对路径下加载配置文件:FileSystemXmlApplicationContext
结论/;web开发中,使用applicationContext;在资源匮乏的环境可以使用BeanFactory
三、配置详解
1.Bean
使用该元素描述需要Spring容器管理的对象
name属性:被管理对象的对象起个名字,获得对象时根据该名称获得对象,
名称可以重复,可以使用特殊字符
class属性:被管理对象的完整类名
id属性:与name属性一模一样,但是其名称不可重复,不能使用特殊字符
为了保护id属性,从而有了一个name属性
结论:尽量使用name属性
2.Spring三种对象创建方式
(1)空参构造方式(重点)—Spring创建对象
配置文件:
(2)静态工厂(了解)-----静态工厂创建对象
配置文件:
(3)实例工厂(了解)(动态工厂)
配置文件:
3.Bean元素进阶(1)scope属性
①singleton(重点)默认值,单例对象,被标识为单例的对象,在Spring容器中只会存在一个实例
②prototype(重点):多例原型,被标识为多例的对象,每次在获得时才会创建,每次创建都是新的对象 (注意:整合struts2时,actionBean必须配置为多例)
③request(了解):web环境下,对象与request生命周期一致
④session(了解):web环境下,对象与session生命周期一致
(2)生命周期属性(了解)
init-method:配置一个方法作为生命周期初始化方法,Spring会在对象创建之后立即使用
destory-method;配置一个方法作为生命周期的销毁方法,Spring容器在关闭并销毁所有容器中的对象之前调用配置文件:
user.java
demo.java
4.Spring的分模块配置
在主配置文件中可以导入其他配置文件(import)
例:
<import resource = "cn/itcast/b_create/applicationContext.xml" />