一.Spring概述
-
Spring是分层的javaSE/EE full-stack轻量级,非侵入式的一站式开源框架,以IOC(Inverse of Control控制反转)和AOP(Aspect Oriented Programming面向切面编程)为内核.使用基本JavaBean来完成以前只能由EJB完成的工作,取代了EJB的臃肿,低效的开发模式
-
JavaBean实际上是一种java类,通过封装属性和方法成为具有某种功能或者处理某个业务的对象
-
JEB 通俗理解就是将我们编写软件中的那些需要执行指定的任务的类,不放到客户端软件上了,而是给他打包放置在一个服务器端上
-
IOC(Insersion Of Control 控制反转): 以前我们使用对象,在哪里使用就在哪里new一个,但是这样写并不灵活,显得很呆.IOC的思想就是用Spring框架将所有使用的对象进行管理(对象的创建,功能增强,对象的销毁),我们在哪里使用对象,就在哪里注入.以此实现了对象创建的权利转移.
-
AOP(Aspect Oriented Programming 面向切面编程)利用SpringAOP基础功能切入业务类,精简了代码,且有利于后期维护.
-
一站式框架: Spring还对jdbc,对事物进行了管理;对web层进行了封装
-
-
实际开发中,通常服务器端采用3层体系架构,分别为表示层(Web),业务逻辑层(Service),持久层(Dao).Spring对每一层都提供了技术支持
-
表示层 提供了Struts等框架的整合
-
业务逻辑层 可用来管理事物,记录日志等
-
持久层 持久层可整合Hibernate,JDBC Template
-
-
Spring框架整合其他框架,便于开发,即Spring是一站式框架,也是javaEE 的一种解决方案
二.Spring框架的优点
Spring具有简单,可测试和松耦合等特点,Spring不仅仅可以用于服务器端开发,也可以应用于任何java应用开发之中
1.非侵入式设计
简单来说就是不要求实现接口
什么是侵入式与非侵入式:
-
侵入式: 我们在开发中需要引入许多框架.如果引入的框架如果在使用时,需要继承框架提供的实体类或者实现框架提供的接口,这就说明该框架是侵入式框架. 因为程序本身对框架有了依赖,所以当我们除去框架时,程序也就无法运行,这样的就是重量级框架.
-
非侵入式: 与侵入式相反,当我们使用非侵入式框架时,不需要去实现框架中的类或者接口,因此当我们除去框架时,通过对程序的简单修改还可以继续使用,这样的称为非侵入式.
2.方便解耦,简化开发
将所有对象的创建,对象之间的关系,维护等都交给Spring来完成,简化了我们开发时需要频繁手动创建对象的繁琐步骤,同时也降低了耦合度.
3.支持AOP
4.支持声明式事物处理
Spring框架将事物管理的功能集成了,我们在开发时不用再去手工提交事物等等,这些事物管理Spring会帮我们完成.
5.方便程序测试
6.方便集成各种优秀的框架
7.降低javaEE API的使用难度