我有一个现有的春季项目,我想开发一个不同的项目,重用一些业务逻辑。特别是我想结合这两个项目:
一些maven pom依赖版本(hibernate,spring,validation,jmx,servlet,connection pooling)。然后可以在每个子项目中自定义数据库URL和c3p0设置等内容,但无需重新定义其设置。
一个基本的applicationContext.xml,它支持类路径扫描,注释,事务,异步,调度程序。理想情况下,我在某种父项目中预先配置它,并且所有继承/子项目都可以自动@Autowired而无需提供额外的context.xml文件。
一个Spring ContextLoaderListener,它负责按顺序关闭应用程序(例如保存终止所有数据库或当前正在运行的Web服务请求)
一个委托给服务实现的spring托管tcp套接字网关
所有这些东西都应该在我的第二个申请中重复使用。我现在当然可以复制/发布我想要重用的所有内容。但这有一个明显的缺点:我希望能够改变“共享”中的任何内容。内容,它应该对这两个应用程序产生影响。
例如,如果我更新maven pom中的Spring.version
,则两个应用都应该获得新版本。如果我更改套接字网关中的任何内容,等等。
你能告诉我如何实现这个目标吗?
答案 0 :(得分:2)
这可能对您的需求有些过分,但这就是我在由许多组件组成的系统上使用/使用Maven的方式:
dependencyManagement
部分中系统中使用的所有依赖关系(内部和第三方)。plugins
或pluginManagement
部分的同一个父POM中包含常见插件。dependencies
部分中每个组件所需的依赖项。重要的是,版本可以省略,因为它是从父POM获得的。要避免的事情:
modules
,这会将所有模块锁定到相同的构建和发布周期。虽然这可能使版本控制 - 检出和构建看起来很容易,但这意味着您不能(轻松地)将模块/组件单独发布给其他模块/组件,例如当您需要时修补一个错误。