我有一个Java Web应用程序,使用Spring,Hibernate和Wicket连接到MySQL数据库,我想重构并分成几个应用程序。我开始使用Maven的多模块系统,但实际上每个应用程序都有自己的发布周期,所以我现在已经放弃了这项工作,我正在考虑为每个应用程序创建单独的项目他们它们都将继续连接到同一个数据库,因此我将模型类移动到他们自己的项目中,可以用作依赖项。
我对此设置有几个问题:
将模型类移动到他们自己的项目中是多个应用程序/单个数据库问题的典型解决方案,还是有另一种方式?
是否有一种很好的方法可以确保所有应用程序都使用相同版本的模型依赖项?
我是否还应该在每个应用程序可以使用或扩展的核心项目中包含任何基本daos和服务,或者我应该只包括我的GenericHibernateDao
并让每个应用程序创建自己的daos和服务?显然,我希望尽可能避免更改此项目,因为它需要根据它自行发布所有应用程序。
我是否需要更改任何与Hibernate相关的配置,例如连接池?每个应用程序是否有自己的池或者它们应该共享一个是否重要?我目前没有使用缓存,但据我所知,我需要分布式缓存吗?
如何在应用程序之间共享应用程序配置,如db params,email host,sms gateway等?有没有办法在某个地方定义它们以确保它们都指向同一个数据库?
在Maven或部署过程中,使用此设置可能会遇到更多其他问题吗?我应该遵循的任何提示或最佳做法?
答案 0 :(得分:0)
这些一直是我的惯例,我通常做的是...... - DAO,Conn。池管理,故障转移相关代码可以通过编写单独的模块来管理[jar] - 然后,您可以在组件中使用此模块。
使用此功能,您将为每个组件提供单独的连接池。