Spring 与maven在项目之间共享代码
我必须创建2个项目。为此,我将使用Spring、JPA、JSF和Maven。我的项目将是3层架构上的结构,因此我将有视图、服务和DAO层。持久层将由hibernate和JPA2.0提供。Spring 与maven在项目之间共享代码,spring,jpa,maven-3,Spring,Jpa,Maven 3,我必须创建2个项目。为此,我将使用Spring、JPA、JSF和Maven。我的项目将是3层架构上的结构,因此我将有视图、服务和DAO层。持久层将由hibernate和JPA2.0提供。 问题是这两个项目将共享大部分代码,基本上这两个项目都在同一个数据库上运行,并且将共享大多数实体、DAO甚至服务。 我在谷歌上搜索了一下,发现这个任务可以通过一个多模块的maven项目来实现。因此,我创建了一个多模块maven项目,它由以下部分组成: -核心包(将包含所有公共类), -内部webApp(将由内部用
问题是这两个项目将共享大部分代码,基本上这两个项目都在同一个数据库上运行,并且将共享大多数实体、DAO甚至服务。
我在谷歌上搜索了一下,发现这个任务可以通过一个多模块的maven项目来实现。因此,我创建了一个多模块maven项目,它由以下部分组成:
-核心包(将包含所有公共类),
-内部webApp(将由内部用户访问)
-外部网站(将由外部客户访问) 我在这里遇到的问题是persistene.xml位置,因为如果我将该文件放入核心包中,我就无法包含其他项目中的实体。如果我将文件放在项目中,我可以引用persistence.xml中的核心实体,但我希望共享一些功能,例如:
public abstract class GenericDaoImpl<T> implements GenericDao<T> {
@PersistenceContext(type = PersistenceContextType.TRANSACTION,unitName="CCPU")
protected EntityManager em;
公共抽象类GenericDaoImpl实现GenericDao{
@PersistenceContext(type=PersistenceContextType.TRANSACTION,unitName=“CCPU”)
受保护的实体管理器em;
不再工作,因为eclipse“尖叫”说没有名为CCPU的持久化单元,因为persistence.xml文件不再在此项目中。首先,这是解决此类问题的正确方法吗?
最后但并非最不重要的一点是,为了能够合并所有3个子项目中的实体,我应该将持久性文件放在哪里?我有相同的情况:两个Web应用程序具有公共域对象,但我的所有实体都位于“域”模块中。Web应用程序就像“域”后端模块的“前端客户端” 如果您想在适当的项目中找到特定于webapp的实体,请尝试从GenericDaoImpl中删除“em”字段,并将其作为参数传递给所有方法