项目之间共享的Java域对象
我有两个具有相同域对象的Java项目。第一个项目是webapp的管理。第二个项目是webapp 我选择这种方法是为了在不停机的情况下为我的webapp部署管理 所以两个项目使用相同的数据库。我正在使用spring数据并用@Entity标记实体 我的问题是:有没有办法在每个项目中复制域对象?项目之间共享的Java域对象,java,spring,maven,Java,Spring,Maven,我有两个具有相同域对象的Java项目。第一个项目是webapp的管理。第二个项目是webapp 我选择这种方法是为了在不停机的情况下为我的webapp部署管理 所以两个项目使用相同的数据库。我正在使用spring数据并用@Entity标记实体 我的问题是:有没有办法在每个项目中复制域对象? 例如,使用域对象创建另一个maven模块,并将其标记为依赖项。(但在这种情况下,@Entity仍然可以工作?。方法就像你说的那样-创建一个包含所有JPA类(@Entity类)的maven模块(通常称为data
例如,使用域对象创建另一个maven模块,并将其标记为依赖项。(但在这种情况下,@Entity仍然可以工作?。方法就像你说的那样-创建一个包含所有JPA类(@Entity类)的maven模块(通常称为datamodel、infomodel或类似的东西) 这个模型可以是一个完全独立的第三个项目(更多的工作),或者,更可能的是,选择两个项目中的一个作为模块的“所有者”,而另一个项目将简单地将其列为依赖项。在这两种情况下,您都需要考虑版本兼容性(当您更新管理而不是webapp和实体发生更改时会发生什么情况?谁更新了数据库,如何确保旧代码仍然可以读/写它?)
至于工作,JPA类在它们自己的jar中工作得很好。方法正如您所说的-创建一个包含所有JPA类(@Entity类)的maven模块(通常称为datamodel、infomodel或类似的东西) 这个模型可以是一个完全独立的第三个项目(更多的工作),或者,更可能的是,选择两个项目中的一个作为模块的“所有者”,而另一个项目将简单地将其列为依赖项。在这两种情况下,您都需要考虑版本兼容性(当您更新管理而不是webapp和实体发生更改时会发生什么情况?谁更新了数据库,如何确保旧代码仍然可以读/写它?)
至于工作,JPA类在它们自己的jar中工作得很好。正如您所提出的,这是一个很好的近似值,将两个不同的maven项目分开 你要做的和我们的结构非常相似。这是一个使用Maven和Spring的多模块项目,是开源的,所以您可以查看它的结构,看看它是否有用
关于如何一步一步地实施,您还有另一个指南。希望能有所帮助。就像您提出的一样,这是一个很好的近似值,将两个不同的maven项目分开 你要做的和我们的结构非常相似。这是一个使用Maven和Spring的多模块项目,是开源的,所以您可以查看它的结构,看看它是否有用
关于如何一步一步地实施,您还有另一个指南。希望有帮助。您至少需要三个模块。 第1个-具有enitity注释的域类的域模块; 第二,应用程序本身取决于域模块; 第三,adm模块也取决于域 现在您有了一个多模块maven项目,您应该有一个正式列出其他三个作为其子模块的第四个项目
附言:抵制创建单独的git存储库和单独开发模块版本的诱惑。(只是一个建议)您至少需要三个模块。 第1个-具有enitity注释的域类的域模块; 第二,应用程序本身取决于域模块; 第三,adm模块也取决于域 现在您有了一个多模块maven项目,您应该有一个正式列出其他三个作为其子模块的第四个项目
注意:抵制创建单独的git存储库和单独开发模块版本的诱惑。(只是一个建议)您可以轻松地使用maven模块来实现常见功能。如果您已正确配置,@Entity和(其他所有相关内容)将毫无问题地工作。您可以轻松地使用maven模块实现常见功能。如果配置正确,@Entity和(其他所有相关内容)将正常工作