Spring框架简介

2019-07-10  本文已影响0人  夏与清风

Spring框架是Spring技术栈的核心,它实现了对bean的依赖管理和AOP的编程方式,降低了代码的耦合度,极大提升了编程效率,是很好的一站式构建企业级应用的轻量级解决方案。

\bullet 模块化的spring架构

Spring框架是模块化的,开发人员可以自由选择所需部分。Spring框架支持声明式事务管理,通过RMI或WEB服务远程访问用户的逻辑,并支持多种选择来持久化用户数据。它提供了全功能的Spring MVC及Spring WebFlux框架,也支持AOP集成到软件中。

\bullet spring的优点

Spring框架是一个轻量级的Java平台,可以提供完整的基础设施来支持开发Java应用程序。它负责基础设施功能,让开发者可以更专注于业务逻辑的开发。

\star 本地Java方法可以执行数据库事务,无须自己处理事务API;

\star 本地Java方法可以执行远程过程,无须自己处理远程API;

\star 本地Java方法可以成为HTTP端点,无须自己处理servlet API;

\star 本地Java方法可以拥有管理操作,无须自己处理JMX API;

\star 本地Java方法可以执行消息处理,无须自己处理JMS API;

\bullet IOC

Java平台提供了丰富的应用程序开发功能,但它缺乏组织基本构建模块成为一个完成系统的方法。开发者可以使用各种设计模式,如Factory、Abstract Factory、Builder、Decorator等模式来组合各种类和对象实例构建应用程序。虽然这些模式可以解决对应的问题,但带来的问题是使用它的技术门槛比较高,否则难以在应用程序中有效的使用它。

Spring框架的IOC组件通过提供正规化的方法来组合不同的组件,使它们成为一个完整可用的应用。Spring框架将规范化的设计模式作为一等对象,方便开发者将其集成到自己的应用程序中。开发人员无须手动处理对象间的依赖关系,全部交给Spring容器去管理,大大提升了开发体验。

Spring框架常用模块

Spring框架包含了20多种模块,涵盖了企业级开发的各个方面。模块如下:

spring-aop、spring-orm、spring-context-support、spring-webmvc、spring-jdbc、spring-beans-groovy、spring-tx、spring-messaging、spring-context-indexer、spring-webflux、spring-jcl、spring-beans、spring-test、spring-expression、spring-context、spring-web、spring-instrument、spring-aspects、spring-oxm、spring-core、spring-websocket、spring-jms、spring-framework-bom。

七大核心模块

1、核心容器

核心容器(Core Container)由spring-core、spring-beans、spring-context、spring-context-support、spring-expression模块组成。

\bullet spring-core和spring-beans模块是框架的基本部分,包括了IOC和DI功能。BeanFactory是一个复杂工厂模式的实现,无须编程就能实现单例,允许开发人员将配置和特定依赖从实际程序逻辑中解耦。

\bullet spring-context模块是建立在Core和Beans模块提供的功能基础之上的,它是一种在框架类型下实现对象存储操作的手段。它继承了Beans模块的特性,并增加了对国际化的支持、事件广播、资源加载和创建上下文,也支持如EJB、JMX和基础远程访问的J2EE特性。ApplicationContext接口是Context模块的主要表现形式。

\bullet spring-context-support模块提供了对常见的第三方库的支持,以便集成到spring应用上下文,如缓存(EhCache、JCache)和调度(CommonJ、Quartz)等。

\bullet spring-expression模块提供了一种强大的表达式语言,用来在运行时查询和操作对象图。它是对JSP2.1规范所指定的统一表达式语言的一种扩展,这种语言支持对属性值、属性参数、方法调用、数组内容存储、收集器和索引、逻辑和算数的操作机命名变量,并通过名称从spring控制反转容器中获取对象。

2、AOP(面向切面编程)和Instrumentation

spring-aop模块提供AOP的实现,可以实现方法拦截器和切入点完全分离代码。

spring-aspects模块提供了集成使用AspectJ的功能,spring-instrument模块提供了类instrumentation的支持和在某些应用服务器使用类加载器实现。spring-instrument-tomcat用于Tomcat Instrumentation代理。

3、消息

spring4版本开始提供了spring-messaging模块,包含了Message、MessageChannel、MessageHandler及其他用来提供基于消息的基础服务。此外还包含一组消息映射方法的注解,类似Spring MVC的注解。

4、数据集成与访问

数据访问/集成层(Data Access/Integration)由JDBC、ORM、OXM、JMS和Transaction模块组成。

\bullet spring-jdbc模块提供了一个JDBC抽象层,让开发者避免进行繁琐的JDBC编码和解析数据库供应商特定的错误代码。

\bullet spring-tx模块支持用于实现特殊接口和所有POJO类的编程及声明式事务管理。

\bullet spring-orm模块为对象关系映射API集成层,包括JPA和Hibernate。它可以将OR映射框架与spring提供的其他功能结合实现。

\bullet spring-oxm模块提供了一个支持object/XML映射实现的抽象层,如JAXB。Castor、JiBX和XStream。

\bullet spring-jms模块包含用于生成和使用消息的功能,从4.1版本开始提供了与spring-messaging的集成。

5、Web

Web层由spring-web、spring-webmvc、spring-websocket、spring-webflux组成。

\bullet spring-web模块提供了基本的面向web开发的集成功能,如文件上传、用于初始化IOC容器的servlet监听、web程序上下文等。它包含了HTTP客户端及web相关的spring远程访问的支持。

\bullet spring-webmvc模块包含spring的MVC和REST服务功能。

\bullet spring-websocket模块是基于websocket协议通信的程序开发。

\bullet spring-webflux模块是spring5新增加的支持响应式编程的web开发框架。

6、测试

spring-test模块支持通过组合JUnit或TestNG来实现单元测试和集成测试功能。它提供了Srping ApplicationContexts的持续加载并缓存这些上下文,还提供了用于孤立测试代码的模拟对象(mock objects)。

--参考文献《Srping5开发大全》

上一篇下一篇

猜你喜欢

热点阅读