Spring 简介

2019-08-09 00:00:00 spring 简介

 

Spring是一个主流的Java Web开发框架。实际上,Spring不仅能用于Java EE,也能用于Java SE。

 

Spring是一个分层的Java SE/EE  full-stack(一站式)轻量级开源框架。它以Ioc(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切片编程)为内核,使用基本的JavaBean来完成以前只能由EJB(Enterprise Java Beans)完成的工作,取代了EJB臃肿、低效的开发模式。

 

Spring致力于JavaEE应用各层的解决方案,是企业应用一站式开发很好的选择,在表现层它提供了Spring MVC以及整合Struts的功能,在业务逻辑层可以管理事务、记录日志等,在持久层可以整合Hibernate、Mybatis等框架。虽然Spring贯穿表现层、业务逻辑层、持久层,但Spring并不是要取代那些已有的优秀框架,而是可以高度开放的与其它优秀框架无缝整合。

 

 

 

 

Spring的优点

1、非侵入式设计

Spring是一种非侵入式(no-invasive)框架,它可以使应用程序代码对框架的依赖最小化。

 

2、方便解耦、简化开发

Spring是一个大工厂,可以将所有  对象的创建、依赖关系的维护 交给Spring容器管理,大大降低了组建之间的耦合。

 

3、支持AOP

允许将一些通用任务,比如安全、事务、日志等,进行集中式管理,从而提高程序的复用性。

 

4、支持声明式事务处理

通过配置就可以完成对事务的管理,无需手动编程。

 

5、方便整合其它优秀框架

Spring可以与大多数框架无缝整合。

 

6、测试方便

Spring支持Junit4,可通过注解测试程序,很方便。

 

7、降低了使用JavaEE API的难度

Spring对JavaEE开发中难用的一些API进行了封装,降低了这些API的使用难度。

 

 

 

 

Spring的体系结构

《Spring 简介》

 

1、Test模块

提供对应用的单元测试、集成测试的支持

 

2、Core  Container(核心容器)

Spring核心容器是其它模块的基础,主要由5个模块组成:

  • Beans模块:提供BeanFactory,是工厂模式的经典实现,Spring将管理的对象称为Bean。
  • Core  核心模块:是Spring框架的基本组成部分,提供Ioc、DI功能。
  • Context  上下文模块:建立在Beans、Core模块的基础上,可以通过它来访问任何对象的定义、配置。Context模块最重要的是ApplicationContext接口。
  • Context-support 模块:提供Spring对嵌入第三方库的支持,比如要嵌入缓存(Jcache、EhCache)、邮件服务(JavaMail)、任务调度(CommonJ、Quartz)这些第三方功能,就要用到此模块。
  • SpEL模块:提供对Spring Expression Language的支持。

 

3、

  • AOP模块:提供对面向切片编程的支持,允许定义方法拦截器和切入点,将代码按照功能分离,以降低耦合。
  • Aspects模块:提供对整合Aspects框架的支持,Aspects是一个优秀的AOP(面向切片编程)框架。
  • Instrumentation模块:提供对类工具、类加载器的支持/实现。
  • Messaging模块:提供了对消息传递体系的支持。

 

4、Data Access/Integration(数据访问/集成)

  • JDBC模块:是JDBC的抽象,大幅减少了对数据库的编码。
  • ORM模块:封装了大量的对象关系映射的API,提供对JPA、JDO、Hibernate的整合支持。
  • OXM模块:提供了一个支持对象/XML映射的抽象层实现,比如XMLBeans、XStream。
  • JMS模块:提供对消息传递服务的支持。
  • Transactions 事务模块:提供对POJO编程、声明式事务管理的支持。

 

5、Web

  • WebSocket模块:提供WebScoket、SockJS的实现,以及对STOMP的支持
  • Servlet模块:也称为Spring-webmvc模块,包含了Spring的MVC。
  • Web模块:提供基本的Web开发集成特性,比如多文件上传功能、使用Servlet监听器来初始化Ioc容器以及Web应用上下文。
  • Portlet模块:提供了对在Portlet环境中使用MVC的支持。

 

 

 

Spring中的Bean

Spring容器负责创建、管理Bean的实例,所有的类都可以作为Bean。

传统的JavaBean一般是作为DTO(数据传输对象),用来封装值对象,在各层之间传递数据。Spring Bean可以是任何组件,用途广泛。

传统的JavaBean要求为每一个成员变量提添加setter、getter方法。Spring Bean则无此要求,但尽量为Bean写一个无参的构造函数(不强制)。

 

相关文章