Spring模块

Spring Framework

一、学习Spring能带给我什么?

  • 使Java方法在数据库transaction(事务)中执行。
  • 使Java成为Http端点?
  • 使Java成为消息处理程序,而不用使用JMS()
  • 使Java成为management(管理)操作。

个人理解:

  • Spring可以使Java在数据库事务中执行,满足事务的原子性、一致性、隔离性和持久性。
  • 可以使Java通过访问HTTP的方式,来对Java中的方法进行访问。
  • 通过使用Spring,可以使Java用来处理消息。
  • 可以使Java对应用程序具有扩展性,具有管理功能。

二、Spirng Framework Modules(Spring框架的模块)

由Core Container(核心容器)、Data Access/Integration(数据读取和数据整合)、Web、AOP(面向切面编程)、Instrumentation(工具)、Messaging(消息传递)和Test共7部分组成,如下图所示:

在这里插入图片描述

2.1 Core Container(核心容器)

Core Container是由spring-core(spring的核心)、spring-beans(spring里面的类||元素)、spring-context(spring的上下文)、spring-context-support(spring上下文的支持)和spring-expression(spring的表达式)模块组成。

spring-core和spring-beans模块,包括IoC和依赖注入。BeanFactory是工厂模式的复杂implementation(容器),它消除了对程序化单例的需求,并允许您从实际程序逻辑中分离结构和依赖项规范(这段话个人理解:spring-beans将单一的程序结构,分成多个,您可以使用spring-beans将结构和依赖分离)。

☺Context(spring-context)构建在核心(spring-core)和Beans(spring-beans)之上:Context是以framework-style(框架样式)的方式来访问object的方法,类似于JNDI注册表(标准的Java命名和目录接口),Context模块是从Beans模块继承其特征并添加对国际化的使用,例如资源包、event(事件)传播,资源加载以及透明的上下文创建的支持,例如Servlet容器。还支持JavaEE的特征,例如:EJB、JMX和基本远程处理,ApplicationContext接口是Context模块的焦点。

spring-context-support支持common-third-party libraries(公共的第三方库)集成到Spring Context Application(spring应用上下文),用于缓存(EhChache)、邮件(JavaMail)、调度(CommonJ、Quartz)、模板引擎(FreeMarker)。

☺spring-expression模块提供的是一个强大的表达语言(EL表达式),用于在运行时查询和操作object(对象)图,该语言支持设置和获取property的值,property赋值、方法调用、访问数组、集合和索引器的内容。

2.2 AOP和Instrumentation(工具)

spring-aop模块面向切面编程,允许在example(例子)上定义方法拦截器和切入点,以干净解耦的方式实现应该分离的code(代码)。

spring-aspects模块提供与AspectJ的 integration(整合)。

spring-instrument模块提供class检测支持和类加载器instrumentations(实现)在某些application服务器中使用。

spring-instrument-tomcat模块包含Spring对Tomcat的检测代理。

2.3 Messaging消息

在Spring Framework中,包括一个spring-messaging模块,其中包括来自spring整合项目的key抽象,例如Message(消息)、MessageChannel(消息会话)、MessageHeadler(消息处理程序)等,用来作为messaging-based-applications(基于消息的应用程序)的基础,该模块还包括annotations(注解),用于将消息映射到方法上。

2.4 Data Access/ Data Integration(数据存取和数据整合)

Data Access/ Data Integration层是由JDBC、ORM、OXM、JMS和Transient模块组成。

spirng-jdbc模块提供了JDBC-abstraction(抽象)层,不需要进行繁琐的JDBC编码和解析database-vendor(特定错误代码)

spring-tx模块支持程序性和声明性transaction(事务)management(管理)用于实现特殊接口的classes和所有的POJO。

spring-orm模块包括JPA、JDO和Hibernate。

spring-oxm模块包括JAXB、Castor、XMLBeans、JiBX和XStream

spring-jms模块(Java消息传递服务)包含用于producing和consuming消息的特征。

2.5 Web

Web层是由:spring-web、spring-webmvc、spring-websocket和spring-webmvc-portlet模块组成。

spring-web模块提供基本的web-oriented integration features(面向web的集成特征),例如:multipart文件上传下载功能和使用 Servlet listeners (服务监听器)和 web-oriented application context (面向web应用程序上下文)初始化 IoC 容器。还包括HTTP Client和Spring远程支持的web-related(网络相关)部分。

spring-webmvc模块包含了Spring的model、view、controller(MVC)。

spring-webmvc-portlet模块提供了在Portlet环境中使用的MVC的implementation(实施),并且 mirrors Servlet-based spring-webmvc (基于springmvc的镜像)模块的功能。

2.6 Test

spring-test 模块使用 JUnit 或 TestNG 支持单元测试和整合测试 Spring 组件。它提供了loading的
Spring ApplicationContext 和高速缓存这些上下文。它还提供mock objects,您可以使用它来隔离
测试您的 code

发布了90 篇原创文章 · 获赞 284 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_41293896/article/details/103788452