spring|Java:Java Spring框架指南

spring|Java:Java Spring框架指南

文章图片


Spring采用依赖注入和AOP的旗舰技术替代EJB严格的企业Java开发规则 , 这个想法很快引起了已经在寻找替代解决方案的开发人员的兴趣 , 约定而不是配置的想法是使用Spring BOOT快速启动企业解决方案的主要推动力 。

简而言之 , 在功能丰富性方面 , Spring在核心JEE支持计划的中间件战争中似乎领先一步 。
Java Spring框架概述
作为重型企业Java技术的替代方案 , Spring提供了一种更轻、更精简的编程模型 。 Spring 授权POJO参与企业编程上下文 , 其功能类似于EJB提供的规范 。 J2EE的 EJB 是一个沉重的企业组件 , 但随着时间的推移 , 它也在不断发展 。 在JEE7之后 , 核心 JEE平台也开始通过EJB提供一个简单的面向POJO的编程模型 。 不仅如此 , 今天的EJB还支持DI和AOP 。 但是 , 应该记住 , Spring基本上是EJB规范的实现 , 是其实现的替代方案 。 Spring和EJB实现(不是规范)的游乐场是 JEE 竞技场 , 如果从场景中删除规范 , Spring和 EJB都将消失 。 因此 , 两者之间的冲突在于它们的实现而不是规范 。 有许多EJB实现 , 例如由 JBoss、Glassfish、Wildfly 等应用程序服务器实现的 。
Spring作为企业开发的Java平台 , 在特性、功能和易于快速开发方面提供了全面的基础设施支持 。 Spring坚信将POJO融入企业领域 , 彻底改变了企业解决方案的开发 。 选择一个POJO并以非侵入方式应用带有注释的企业服务 。 这就是POJO需要指定为企业组件的全部内容 。 此外 , Spring鼓励了很多良好的面向对象设计原则 , 例如MVC、依赖注入和AOP等 。 此外 , Sprin还提供了许多额外的功能 , 例如 spring-test、spring-BOOT、合并任何其他框架的灵活性等等 。
Spring框架模块
核心容器由spring-core、spring-beans、spring-context、spring-context-support、spring-expression等模块组成 。

1、spring-core和spring-beans模块构成了框架的基本部分 , 包括IoC(控制反转)和依赖注入特性 。 IoC的思想表明 , 框架将进行调用 , 而不是应用程序调用方法 。 这个想法颠倒了程序流的控制 。 因此 , 名称反转控制 , 或简称IoC 。 但是 , IoC是一个更广泛的术语 , 依赖注入(DI) 是其实现的一种形式 。 DI通过构造函数和 getter/setter注入来注入对象属性 , 从而消除了软件组件之间的紧密耦合 。 还有另一种类型的注入 , 称为接口注入 , Spring不支持 。 有一个复杂的工厂模式实现称为BeanFactory , 它有助于将配置和规范依赖与程序逻辑分离 。
2、spring-context模块建立在spring-core和spring-beans模块之上 , 并提供了以 JNDI样式访问对象的方法 。 从spring-bean模块继承的特性有助于它添加对国际化、资源加载和事件传播的支持 。 此模块支持的其他JEE功能包括EJB、JMX和远程处理 。 ApplicationContext是从这个模块派生的主接口 。 spring-context-support 模块提供了集成许多第三方库的方式 , 例如用于报告的JasperReport、用于调度的Quartz、用于邮件的JavaMail和用于缓存的EhCache 。
3、spring-expression模块提供了强大的表达式语言(由统一EL指定 , 根据JSP 2.1 规范)用于在运行时查询和操作对象图 。
4、spring-aop 模块提供面向方面编程的实现 。 面向方面编程(AOP)的要点是将横切关注点从业务逻辑中分离出来 , 因为尽管它们参与了程序的整体操作 , 但它们在概念上是分开的 。 一个非常常见的例子是记录过程 , 它可能会跨越业务逻辑的关注点 , 因为它在过程中没有明显的需求 , 但有助于记录可能有助于回溯到某个检查点或从长远来看调试程序的事件 。
5、spring-messaging 模块是 Spring 中基于消息的应用程序的基础 。 它提供注释以将消息映射到类似于基于注释的 Spring MVC 编程模型的方法 。
数据访问/集成层包含对 JDBC、ORM、OXM、JMS 和事务的支持 。
spring-jdbc 模块提供 JDBC 抽象 。
【spring|Java:Java Spring框架指南】spring-tx 模块支持所有 POJO 的编程和声明式事务 。
spring-orm 模块为流行的 ORM API 提供支持 , 例如 JPA、JDO、Hibernate 等 。
spring-oxm 模型用于对象/XML 映射实现 , 例如 JAXB、XStream、Castor 和 XMLBeans 。
spring-jms 模块是 Java 消息服务 (JMS) 的抽象 。 它为生产和消费消息提供支持 。 在 Spring 4.1 中 , 它与 spring-messaging 模块集成 。
6、Web层由四个模块组成:spring-web、spring-webmvc、spring-websocket和spring-webmvc-portlet 。