Spring框架也算是SSH中比较早接触的了,从网上找到一张截图,还挺清晰的。
一.Spring框架的概述
1.Spring框架的集成能力还是很强的。
2.Spring是一个轻量级的IOC和AOP容器框架:
a,轻量级:程序实现不是很复杂,代码不是很多,占用资源不是很多,没有侵入性;
b,IOC(Inversion of Control 控制反转):对象创建责任的反转(重点,核心);
c,Aop(Aspect Oriented Programming):一种面向横切面编程的思想方式,可以进行功能性扩展。
d 容器:可以容纳对象,并且可以控制对象的生命周期。
3.使用步骤
1.拷贝jar包:
(必须) commons-logging.jar (日志输出操作,实现日志输出的转换)
(非必须)log4j-1.2.15.jar(日志输出操作,日志输出更加详细及更加容易控制)
(非必须)junit-3.8.2.jar(单元测试)
(必须)spring.jar(框架的核心包)
2.拷贝框架的核心配置文件,存放在src目录下:
applicationContext.xml(框架的核心配置文件)
log4j.properties(控制log4j的日志输出级别,以及输出目的地,和输出格式)
3.编写框架的核心配置文件,将声明对象都交给Spring框架来创建,以及初始化,例如service层的类,action层类,dao层类等,都可以交个Spring进行管理。
<bean id="loginAction" class="com.ljh.struts2.action.LoginAction" scope="prototype"></bean>
分析:a.框架创建对象的方式:
框架默认创建对象是单例的:scope="singleton"
如果想要多例创建,需要设置 scope="prototype"
b.工厂BeanFactory,如果使用BeanFactory来加载Spring配置文件,那么在调用getBean时,框架调用对象的默认构造方法来创建对象。BeanFactory功能是对bean对象的生命周期进行管理的。(创建,初始化,销毁)
c.ApplicationContext(也是框架默认的)
使用该对象加载Spring配置文件,会在加载时解析配置文件,创建对象,而不是在getBean时创建对象。其实,ApplicationContext接口继承了BeanFactory,所以具备BeanFactory所有功能,同时增加扩展的功能,例如加载资源配置文件
三、Spring框架的优缺点:
优点:
1.轻量级的容器框架,没有侵入性
2.IoC更加容易组合对象之间的关系,耦合开发。
3.易于本地测试(Junit单元测试,不用部署服务器)
4.AOP可以更加容易的进行功能扩展
5.Spring默认对象的创建为单例的,我们不需要再使用单例的设计模式来开发单体类。
6.Spring的集成很强大,另外可以对其他框架的配置进行一元化管理。
7.Spring的声明式事务