Spring(1)总体概述

来源:互联网 发布:hash算法的实现原理 编辑:程序博客网 时间:2024/05/01 13:04

spring框架,是进行对象管理,对象关联,解耦的一个中间层框架。SSH(Struts+Spring+hibernate)三大Spring在中间就起着一个承上启下的作用。通过下边这张图来总括一下:
这里写图片描述

一、Spring是一个轻量级的IOC和AOP容器框架:


  • 轻量级:程序实现不是很复杂,代码不是很多,占用资源不是很多,没有侵入性;

  • IOC(Inversion of Control 控制反转):指的是在spring框架的配置文件中声明对象,由框架负责创建对象,这叫做控制反转。实现方式有两种:DI(Dependency Injection)依赖注入,这也是Spring框架的实现方式,主要学习的也是这个;SL(Service Locator)服务器定位器实现方式。

    DI依赖注入,就是框架不仅创建了对象,而其还负责初始化相关联的对象的过程。从实现方式上也分为3种方式:(1)Interface Injection(接口注入):容器运行时,目标对象实现特定的接口,然后容器通过接口将关联对象注入到目标对象中。这种方式Spring框架不支持,所以了解。(2)Setter Injection(set方法注入):容器运行时,通过类属性的set方法将关联对象注入到目标对象中。Spring框架支持,而且是我们开发经常使用的,非常重要。(3)Constructor Injection(构造方法注入):容器运行时,通过类的构造方法将关联对象注入到对象中。Spring框架也支持,没有set用的普遍。
  • Aop(Aspect Oriented Programming):一种面向横切面编程的思想方式,可以进行功能性扩展,具体详细介绍参考http://blog.csdn.net/liujiahan629629/article/details/18864211;

  • 容器:可以容纳对象,并且可以控制对象的生命周期;

二,看一下使用步骤吧!


1,还是拷贝jar包:
这里写图片描述
2,拷贝框架的核心配置文件,存放在src目录下:
这里写图片描述
3,编写框架的核心配置文件,将声明对象都交给Spring框架来创建,以及初始化,例如service层的类,action层类,dao层类等等,都可以交给Spring进行管理,

<span style="font-size:18px;">      <!-- 声明Action对象 -->  <bean id="loginAction" class="com.ljh.struts2.action.LoginAction" scope="prototype"></bean> </span>  

分析:
a,框架创建对象的方式:
框架默认创建对象是单例的:scope=”singleton”
当然action我们想要多例创建,需要设置:scope=”prototype”

b,工厂BeanFactory,如果使用BeanFactory来加载Spring配置文件,那么是在调用getBean时,框架调用对象的默认构造方法来创建对象。BeanFactory功能是对bean对象的生命周期进行管理的。(创建,初始化,销毁)。

c,ApplicationContext(推荐,也是框架默认的)来用才对象来加载Spring配置文件,会在加载时解析配置文件,创建对象,而不是在getBean时创建。其实,ApplicationContext接口继承了BeanFactory,所以具备BeanFactory所有功能,同时增加扩展的功能,例如加载资源配置文件,国际化支持等!

4,如何测试,这里我们可以使用Junit(Java的单元测试进行测试)(我们现在是单独使用Spring为了是学习,后边会集成多个框架的)

三,Sping框架的优缺点:


优点:

(1)轻量级的容器框架,没有侵入性(2)IoC更加容易组合对象之间的关系,通过面向接口进行编程,可以低耦合开发。(3)易于本地测试(Junit单元测试,不用部署服务器)(4)AOP可以更加容易的进行功能扩展,遵循OCP开发原则。(5)Spring默认对象的创建为单例的,我们不需要再使用单例的设计模式来开发单体类。(6)Spring的集成很强大,另外可以对其他框架的配置进行一元化管理。(7)Spring的声明式事务的方便使用。

缺点:

   自我感觉是所有框架共有的,就是开发对设计要求较高,集成测试麻烦,对框架有一定的依赖性。
1 0
原创粉丝点击