一、思想

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属性

java spring配置多个端口 spring配置接口_配置文件


2.Spring三种对象创建方式

(1)空参构造方式(重点)—Spring创建对象

配置文件:

java spring配置多个端口 spring配置接口_创建对象_02


java spring配置多个端口 spring配置接口_创建对象_03


(2)静态工厂(了解)-----静态工厂创建对象

配置文件:

java spring配置多个端口 spring配置接口_生命周期_04


java spring配置多个端口 spring配置接口_spring_05


java spring配置多个端口 spring配置接口_配置文件_06


(3)实例工厂(了解)(动态工厂)

配置文件:

java spring配置多个端口 spring配置接口_配置文件_07


java spring配置多个端口 spring配置接口_创建对象_08


java spring配置多个端口 spring配置接口_创建对象_09


3.Bean元素进阶(1)scope属性

①singleton(重点)默认值,单例对象,被标识为单例的对象,在Spring容器中只会存在一个实例

java spring配置多个端口 spring配置接口_spring_10


java spring配置多个端口 spring配置接口_创建对象_11


②prototype(重点):多例原型,被标识为多例的对象,每次在获得时才会创建,每次创建都是新的对象 (注意:整合struts2时,actionBean必须配置为多例)

java spring配置多个端口 spring配置接口_创建对象_12


java spring配置多个端口 spring配置接口_创建对象_13


③request(了解):web环境下,对象与request生命周期一致

④session(了解):web环境下,对象与session生命周期一致

(2)生命周期属性(了解)

init-method:配置一个方法作为生命周期初始化方法,Spring会在对象创建之后立即使用

destory-method;配置一个方法作为生命周期的销毁方法,Spring容器在关闭并销毁所有容器中的对象之前调用配置文件:

java spring配置多个端口 spring配置接口_java spring配置多个端口_14


user.java

java spring配置多个端口 spring配置接口_java spring配置多个端口_15


demo.java

java spring配置多个端口 spring配置接口_生命周期_16


4.Spring的分模块配置

在主配置文件中可以导入其他配置文件(import)

例:

<import resource = "cn/itcast/b_create/applicationContext.xml" />