Spring Integration关键案例与现实生活场景 spring的应用场景

发布时间:2025-02-10 17:15

运用案例分析,将理论知识应用到实际场景 #生活技巧# #学习技巧# #跨学科学习技巧#

文章目录

应用场景

依赖关系管理和命名约定

Spring的依赖和依赖于Spring

Maven 依赖管理

Maven "Bill Of Materials" 依赖

有备考软考的小伙伴,想积分落户,单位评职称?科目太多不知道怎么选?考试考点难点太多没有头绪?刚准备1个多月过了高级,关注我,我整理了软考各科目的报考条件、适合人群以及备考攻略,可以直接领取:

 https://edu.51cto.com/surl=Qrh6x1

应用场景

上文所述的构建模块在很多的情况下使 Spring 是一个合理的选择,从资源受限的嵌入式程序到企业级的应用程序都可以使用 Spring 事务管理功能和 web 框架集成。

Spring 的声明式事务管理特性使 Web 应用程序拥有完整的事务,就像使用 EJB 容器管理的事务。所有的自定义业务逻辑可以用简单的 POJO 实现,用 Spring 的 IoC 容器进行管理。额外的服务包括发送电子邮件和验证,不依赖于网络层,这就可以让你选择在何处执行验证规则。Spring 的 ORM 支持集成 JPA,Hibernate,JDO;例如,当使用 Hibernate,您可以继续使用现有的映射文件和 标准的 Hibernate 的 SessionFactory 配置。表单控制器将 Web 层和领域模型无缝集成,消除 ActionForms 或其他用于变换 HTTP 参数成为您的域模型值的类的需要。

有些系统不允许你完全切换到一个不同的框架。但Spring Framework不强制要求你使用它的每一个组件;它不是一个一揽子的解决方案。现有的使用Struts、Tapestry、JSF和其它UI框架搭建的前端可以集成到以Spring为基础的中间层,这样可以使用Spring的事务功能。仅需要将业务逻辑交由ApplicationContext管理,并使用WebApplicationContext集成到web层。

当需要通过web服务访问现有代码,可以使用Spring的Hessian-, Burlap-, Rmi- 或 JaxRpcProxyFactory 类。启用远程访问现有应用并不难。

Spring Framework也提供了企业级Java Bean的访问和抽象层,使得可以重用现有的POJOs,并且将它们包装成无session状态的bean,用于可伸缩、自防卫的声明式安全的应用中。

依赖关系管理和命名约定

依赖管理和依赖注入是不同的概念。为了让 Spring 的这些不错的功能运用到运用程序中(比如依赖注入),需要收集所有需要的库(JAR文件),并且在运行时将它们放到类路径中,有时候编译时也需要。这些依赖不是虚拟组件的注入,而通常是在文件系统中的物理资源。依赖管理过程包括定位这些资源,存储它们并添加它们到类路径。依赖可以是直接(如我的应用程序运行时依赖于 Spring ),或者是间接(如我的应用程序依赖 commons-dbcp ,而 commons-dbcp 又依赖于 commons-pool)。间接的依赖也被称为 “transitive (传递)”,它是最难标示和管理的依赖。

如果要使用 Spring,需要复制那些包含你需要的 Spring 功能的 jar包。为了使这个过程更加简单,Spring 被分别打包为一些模块,这些模块尽可能的不相互依赖。例如,如果不想写一个 web 应用程序,你就不需要引入 Spring-web 模块。为了标记 Spring 库的模块我们使用了速记命名约定 spring-* 或者 spring-.jar ,其中 * 代表模块的简称(比如 spring-core,spring-webmvc, spring-jms 等)。实际的jar 文件的名字,通常是用模块名字和版本号联结组成(如 spring-core-4.3.0.RELEASE.jar)。

每个 Spring Framework 发行版本将会发布到下面的位置:

Maven Central (Maven 中央库),它是 Maven 查询的默认库,不需要任何特殊的配置就能使用。许多 Spring 常用的依赖库也存在于Maven Central ,并且 Spring 社区的很大一部分都使用 Maven 进行依赖管理,所以这是最方便。jar 命名格式是 spring-*-<version>.jar , Maven groupId 是 org.springframework。在公共 Maven 仓库中有 Spring 专有的库。除了最终的 GA 版本,这个库还保存开发的快照和里程碑。除了最终的 GA 版本,这个库还保存开发的快照和里程碑,所以这是让 Spring 的开发版本使用其它部署在 Maven Central 库的一个有用的地方。该库还包含一个用于发布的 zip 文件包含所有Spring jar,方便大家下载。

所以,首先你要决定用什么方式管理你的依赖,通常建议你使用自动系统像 Maven, Gradle 或 Ivy, 当然你也可以下载 jar包。

Spring的依赖和依赖于Spring

虽然 Spring 提供了一个大范围的企业和其他外部工具的支持和集成,但是它尽量将它强制的依赖关系将到最低。在简单的用例里,你无需查找并下载(即使是自动的)一大批 jar 库来使用 Spring 。基本的依赖注入只有一个外部强制性的依赖,这是用来记录日志的。

Spring 本身在编译时是使用 Gradle 来管理依赖的,大多数示例也是使用 Gradle 或 Maven。

Maven 依赖管理

如果使用的是 Maven 的依赖管理你甚至不需要明确提供日志依赖。例如,要创建一个应用程序的上下文和使用依赖注入来配置应用程序,你的Maven 依赖将看起来像这样:

注意,如果你不需要编译 Spring 的API,scope 可声明为 runtime ,这通常是基本的依赖注入使用的案例。

以上的例子使用的是Maven Central 存储库。如果要使用 Spring Maven 存储库(如里程碑或开发者快照),你需要在 Maven 配置指定的存储位置。如下:

里程碑:

以及快照:

Maven "Bill Of Materials" 依赖

在使用Maven时有可能出现混合使用不同版本Spring的情况。例如,你可能发现一个第三方的库,或另一 Spring 的项目,传递依赖较早的发布包。如果你自己忘记了显式声明一个直接依赖,各种意想不到的问题出现。

为了克服这些问题,Maven 支持 "bill of materials" (BOM) 的依赖的概念。你可以在你的 dependencyManagement 部分引入 spring-framework-bom 来确保所有 spring依赖(包括直接和传递的)是同一版本。

使用 BOM 后,引用依赖 Spring Framework 组件后,无需指定<version> 属性。

有备考软考的小伙伴,想积分落户,单位评职称?科目太多不知道怎么选?考试考点难点太多没有头绪?刚准备1个多月过了高级,关注我,我整理了软考各科目的报考条件、适合人群以及备考攻略,可以直接领取:

 https://edu.51cto.com/surl=Qrh6x1

本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。

收藏 评论 举报

相关文章

网址:Spring Integration关键案例与现实生活场景 spring的应用场景 https://www.yuejiaxmz.com/news/view/765739

相关内容

@EnableRetry(proxyTargetClass = true) . spring
spring
基于Uniapp与Spring Boot的菜谱美食饮食健康管理App设计与实现
spring事务管理(详解和实例)
Spring Boot中使用Server
为什么越来越多的开发者选择使用Spring Boot?
基于Spring Boot的校园生活服务平台的设计与实现(LW+源码+讲解)
spring学习笔记 (3)aop的原理与实现
基于Spring Boot的家教管理系统设计与实现(LW+源码+讲解)
关于Spring 中的 IoC

随便看看