当前位置: 首页 > 知识库问答 >
问题:

如何封装基于spring的库以供重用?

常炯
2023-03-14

我有工作的spring基于web的应用程序。现在我想在另一个项目中重用它的部分。因此,我有两个问题:

  1. 推荐什么方法来打包可重用库这样的功能?内部包含应用程序上下文XML的JAR文件还是JAR+extra XML?还有别的吗?
  2. 如何将这样的库合并到另一个基于spring(Web)的项目(不同的命名空间包)中,从而使@autowired能够工作?我想类路径上的简单JAR是不够的--如何引用库的应用程序上下文等等?还需要采取哪些步骤?

共有2个答案

谷涵容
2023-03-14

我使用的方法只是确保应用程序上下文片段驻留在库jar文件中的一个众所周知的位置(我个人使用meta-inf/)。因此在名为meta-inf//common-security-context.xml的文件中可能有一些常见的安全配置和bean

在您的客户机应用程序(使用库的应用程序)中,您可以通过在应用程序上下文中有一个类似以下的导入来包含所有共享库中的服务和bean:

<import resource="classpath*:META-INF/spring/*-context.xml" />

(注意classpath后面的星号)。这将从运行的应用程序可见的任何jar文件或类路径根中定位其名称与meta-inf/spring/*-context.xml模式匹配的文件,并将它们聚合到一个逻辑上下文中。根据需要调整通配符。

显然,您需要一些策略来避免bean/服务名称冲突,如果您开始广泛使用它,可能会发生这种冲突。

哈烨熠
2023-03-14

您应该使用某种类型的包装来说明它所依赖的是什么。一个流行的选项是使用Maven打包,提供解释依赖关系的pom.xml文件。然后在完成应用程序的Maven发行版。

当使用它时,您需要在应用程序的spring配置中引用共享配置模板。您可以直接导入:

<import resource="classpath*:/META-INF/path/to/otherAppContext.xml" />

这是假设您实际上想要共享您的spring上下文配置。如果您只提供可重用的类,通常不需要共享上下文配置。

 类似资料:
  • 本文向大家介绍基于jQuery的ajax方法封装,包括了基于jQuery的ajax方法封装的使用技巧和注意事项,需要的朋友参考一下 ajax (ajax开发)简介 AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 AJAX = 异步 JavaScript和XML(标准通用标记语言的子集)。

  • 我的目标是将放在下,以简化我的应用程序的结构。

  • 本文向大家介绍基于jQuery拖拽事件的封装,包括了基于jQuery拖拽事件的封装的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了基于jQuery封装的拖拽事件,供大家参考,具体内容如下 HTML代码: 封装的jQuery拖拽事件: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍基于JDBC封装的BaseDao(实例代码),包括了基于JDBC封装的BaseDao(实例代码)的使用技巧和注意事项,需要的朋友参考一下 最近闲暇时萌发写一写dao的封装的例子,就将以前写的整理一下。 以上这篇基于JDBC封装的BaseDao(实例代码)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 封装被定为义为“把一个或多个项目封闭在一个物理的或者逻辑的包中”。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。 抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装使程序员实现所需级别的抽象。 封装使用访问修饰符来实现。一个访问修饰符定义了一个类成员的范围和可见性。C# 支持的访问修饰符如下所示: Public Private Protected Internal

  • 本文向大家介绍PHP封装的数据库模型Model类完整示例【基于PDO】,包括了PHP封装的数据库模型Model类完整示例【基于PDO】的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP封装的数据库模型Model类。分享给大家供大家参考,具体如下: 更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pdo操作数据库技巧总结》、《php+mysqli数据库程序设计技巧总结》、《