两个Java EE应用程序是否可以共享相同的持久性单元和数据源

时间:2017-03-20 10:42:43

标签: java-ee jpa-2.0 persistence-unit

我们正在开发一种供内部使用的SDK,其中包括一些自定义注释,请求过滤器和一些JPA实体,用于存储有关我们组织用户的信息。 SDK是maven工件,包括持有用户信息实体的持久性单元的定义。

我们的问题是:我们必须使用我们的SDK部署到同一容器或自己的容器中来支持多个应用程序。 (SDK的持久性组件无法重构到他们自己的微服务中)

我们的问题:由于我们的授权组件使用的持久单元是在SDK中定义的,它是否会导致在同一容器中运行的多个Java项目引用同一数据源/持久性单元组合的问题?或者我们可以并且应该实施这种方法吗?

1 个答案:

答案 0 :(得分:0)

我能想到的一种方法是为persistence.xml创建一个模板,除了pu名称之外的所有配置都需要sdk中的占位符,而构建单个应用程序时有一个ant运行脚本(可能是来自sdk的java类),它将从应用程序的属性文件中获取项目特定的pu名称,并通过从模板替换pu占位符来创建应用程序的persistence.xml文件。