1. 简介
1.1 spring 是什么?
1.2 优点:
1.3 结构体系
2. 基于XML的IOC环境搭建与入门案例
2.1 安装依赖
2.2 创建bean对象的三种方式
2.3 ApplicationContext(容器接口)的三个常用实现类
2.4 BeanFactory 与 ApplicationContext
2.5 bean作用域与生命周期
2.6 依赖注入
1. 简介:
1.1 spring 是什么?
Spring 是Apache公司开发的一个为了简化企业级应用的开源框架。以 IOC(控制反转)和 AOP(面向切面编程)为内核,提供了展现层 Spring MVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方技术框架和类库,逐渐成为使用最多的 Java EE 企业应用开源框架。
1.2 优点:
非侵入式(轻量级):基于Spring开发的应用中的对象可以不依赖于Spring的API。也就是说引入Spring框架并不会对原来的应用产生影响
IOC解耦:一种设计思想,由IOC容器来控制对象的创建。双方互不依赖,整个过程由IOC容器来管理
依赖注入:指依赖的对象不需要手动调用setXX方法去设置,而是通过配置赋值。
支持AOP编程:
容器:例如Struts2、hibernate、mybatis等框架都是可以被装入Spring的容器中。这个容器包含并且管理应用对象的生命周期。
组件化:Spring实现了使用简单的组件配置组合成一个复杂的应用。在 Spring 中可以使用XML和Java注解组合这些对象
一站式:在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方类库(实际上Spring 自身也提供了表述层的SpringMVC和持久层的Spring JDBC)
1.3 结构体系:
核心容器: Beans Core Context,SpEL

2. 基于XML的IOC环境搭建与入门案例
2.1 安装依赖
安装依赖,并查看依赖关系视图。


2.2 创建bean对象的三种方式
新建bean.xml配置文件(JavaBean:用java语言编写的可重用组件)

2.3 ApplicationContext(容器接口)的三个常用实现类:
ClassPathXmlApplicationContext:它可以加载类路径下的配置文件来创建IOC容器(配置文件必须在类路径下,最常用)
FileSystemXmlApplicationContext:它可以加载磁盘任意路径下的配置文件来创建IOC容器(必须有访问权限)
AnnotationConfigApplicationContext:它是用于读取注解创建容器的

在idea中右键选择 show Diagram 与 show Implementations 查看继承关系与实现类

2.4 BeanFactory 与 ApplicationContext
Spring 的作者Rod Johnson设计了两个接口来创建容器。
BeanFactory:多例对象使用(可以理解成一个HashMap,从上图可以看出其位于最顶层,功能少相对少。)
它在构建核心容器时,创建对象采取的策略是采用延迟加载的方式。也就是说,什么时候根据id获取对象了,什么时候才真正的创建对象。
ApplicationContext:单例对象适用(最常用)
它在构建核心容器时,创建对象采取的策略是采用立即加载的方式。也就是说,只要一读取完配置文件马上就创建配置文件中配置的对象。

2.5 bean作用域与生命周期:

scope(作用域):
singleton:单例的(默认值)
prototype:多例的
request:作用于web应用的请求范围(一次request一个实例)
session:作用于web应用的会话范围(一次http session一个实例)
global-session:作用于集群环境的会话范围(全局会话范围),当不是集群环境时,它就是session
单例对象的生命周期:
创建:当容器创建时对象创建
销毁:容器销毁,对象销毁
总结:单例对象的生命周期和容器相同
多例对象的生命周期:
创建:当我们使用这个对象时spring框架为我们创建
销毁:当对象长时间不用,且没有别的对象引用时,由Java的垃圾回收器回收
2.6 依赖注入
第一种:使用构造函数注入(有默认的构造函数) <constructor-arg></constructor-arg>
第二种:使用set方法注入(存在set方法) <property></property>
第三种:使用注解注入 @Autowired + @Qualifier("xxx") 或 @Resource(name = "XXX")

