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