Spring框架概述

spring官方文档 指路:https://docs.spring.io/spring/docs/5.0.0.M1/spring-framework-reference/html/overview.html

Introduction to the Spring Framework

Spring框架是一个Java平台,它为开发Java应用程序提供了全面的基础设施支持。Spring处理基础设施,因此您可以专注于您的应用程序。

Spring使您能够用“plain old Java objects”(POJOs)构建应用程序,并以非入侵的方式将企业服务应用于POJOs.。此功能适用于Java SE编程模型以及完整和部分Java EE。

作为应用程序开发人员,这些都是Spring平台给你带来好处的例子:

让Java方法在数据库事务中执行,而不需要处理事务api。

使本地Java方法成为远程过程,而不必处理远程api。

使本地Java方法成为管理操作,而不必处理JMX api。

使本地Java方法成为消息处理程序,而不必处理JMS api。

Dependency Injection and Inversion of Control

Java应用程序是一个宽泛的概念,它运行的范围从受约束的嵌入式应用程序到n层的服务器端企业应用程序,通常由协作形成适当应用程序的对象组成。因此,应用程序中的对象相互依赖。

尽管Java平台提供了丰富的应用程序开发功能,但是它缺乏将基本构建块组织成一个统一的整体的方法,这就把这个任务留给了架构师和开发人员。虽然可以使用设计模式, Factory, Abstract Factory, Builder, Decorator, and Service Locator组成的各种类和对象实例应用程序组成,这些模式是:最佳实践给出一个名字,有什么模式的描述,如何应用它,它解决的问题,等等。模式是形式化的最佳实践,必须在应用程序中自己实现。

Spring Framework Inversion of Control (IoC)组件解决了这个问题,它提供了一种形式化的方法,可以将不同的组件组合到一个高可用的应用程序中。Spring框架将形式化的设计模式编码为一些优秀的对象,您可以将这些对象集成到自己的应用程序中。许多组织和机构都以这种方式使用Spring框架来设计健壮的、可维护的应用程序。

背景
“问题是,(它们)反过来控制的是什么方面?”Martin Fowler于2004年在他的网站上提出了关于控制反转(IoC)的问题。Fowler建议对该原则进行重命名,使其更易于解释,并提出了依赖注入。

Modules

Spring框架概述_第1张图片
image.png
Core Container

核心容器由 Spring-CoreSpring-beanSpring-contextSpring-context-supportSpring-Expression (Spring表达式语言)模块组成。 spring-corespring-beans模块提供了框架的基本部分,包括IoC和依赖项注入特性。BeanFactory 是工厂模式的一个复杂实现。它消除了对编程单例的需要,并允许您从实际的程序逻辑中解耦依赖项的配置和规范。 Context (spring-context)模块建立在Core和Beans模块提供的坚实基础之上:它是一种以类似于JNDI注册表的框架风格的方式访问对象的方法。上下文模块从bean模块继承其特性,并添加对国际化的支持(例如,使用资源包)、事件传播、资源加载,以及通过Servlet容器透明地创建上下文。上下文模块还支持Java EE特性,如EJB、JMX和基本远程处理。ApplicationContext 接口是上下文模块的焦点。Spring-context-support 提供了将公共第三方库集成到Spring应用程序上下文的支持,特别是用于缓存(EhCache、JCache)和调度(CommonJ、Quartz)。 spring-expression 模块提供了一种强大的表达式语言,用于在运行时查询和操作对象图。它是JSP 2.1规范中指定的统一表达式语言(unified expression language, unified EL)的扩展。该语言支持设置和获取属性值、属性赋值、方法调用、访问数组、集合和索引器的内容、逻辑和算术运算符、命名变量,以及从Spring的IoC容器中按名称检索对象。它还支持列表投影和选择以及常见的列表聚合。

AOP and Instrumentation

spring-aop 模块提供了一个AOP联盟面向切面的编程实现,允许您定义方法拦截器和切入点,以便干净地解耦实现应该分离的功能的代码。使用源代码级元数据功能,您还可以将行为信息合并到代码中,方法类似于. net属性。

独立的 spring-aspects 模块提供了与AspectJ的集成。

spring-instrument 模块提供了类检测支持和类加载器实现,可在某些应用程序服务器中使用。Spring -instrument- Tomcat 模块包含Spring的Tomcat检测代理。

Messaging

Spring Framework 4包含一个 spring-messaging 模块,其中包含来自Spring集成项目的关键抽象,如 MessageMessageChannelMessageHandler 等,可以作为基于消息的应用程序的基础。该模块还包括一组用于将消息映射到方法的注解,类似于基于Spring MVC注解的编程模型。

Data Access/Integration

数据访问/集成层由JDBC、ORM、OXM、JMS和事务模块组成。 spring-jdbc 模块提供了一个JDBC抽象层,消除了对特定于数据库供应商的错误代码进行冗长的JDBC编码和解析的需要。 spring-tx 模块支持对实现特殊接口的类和所有pojo(普通旧Java对象)的编程和声明性事务管理。 spring-orm 模块为流行的对象关系映射api(包括JPA和Hibernate)提供集成层。使用Spring-orm 模块,您可以将这些对象关系映射框架与Spring提供的所有其他特性结合使用,比如前面提到的简单声明性事务管理特性。 spring-oxm 模块提供了一个抽象层,支持对象/XML映射实现,如JAXB、Castor、JiBX和XStream。 spring-jms 模块(Java消息传递服务)包含用于生成和消费消息的特性。自Spring Framework 4.1以来,它提供了与 spring-messaging 的集成。

Web

Web层由 spring-webspring-webmvcspring-websocket 模块组成。

spring-web 模块提供了基本的面向web的集成特性,比如多部分文件上传功能,以及使用Servlet侦听器和面向web的应用程序上下文初始化IoC容器。它还包含一个HTTP客户机和Spring远程处理支持的web相关部分。

Spring -webmvc 模块(也称为Web-servlet模块)包含Spring的模型-视图-控制器(MVC)和Web应用程序的REST Web服务实现。Spring的MVC框架在域模型代码和web表单之间提供了清晰的分离,并与Spring框架的所有其他特性集成。

Test

Spring -test 模块支持使用JUnit或TestNG对Spring组件进行单元测试和集成测试。它提供了Spring applicationcontext 的一致加载和这些上下文的缓存。它还提供了模拟对象,您可以使用这些对象独立地测试代码。

你可能感兴趣的:(Spring框架概述)