如何从web.xml中的jar获取spring配置xml

如何从web.xml中的jar获取spring配置xml,spring,hibernate,maven,Spring,Hibernate,Maven,在web.xml中读取jar的spring配置xml 我创建了一个maven多模块maven项目。包括DAO模块。在这个模块中,我使用hibernate和spring。我安装了它。然后我创建了一个独立的maven web项目,我使用这个jar。我不想使用classpath:xxx.xml,因为我希望其他人使用我的jar时不知道我的xml名称,因为这个jar包含很多xml。我想知道如何解决这个问题。我想写一个新的spring listener?或者其他方式。谢谢。如果我理解正确,您希望您的罐子10

在web.xml中读取jar的spring配置xml


我创建了一个maven多模块maven项目。包括DAO模块。在这个模块中,我使用hibernate和spring。我安装了它。然后我创建了一个独立的maven web项目,我使用这个jar。我不想使用classpath:xxx.xml,因为我希望其他人使用我的jar时不知道我的xml名称,因为这个jar包含很多xml。我想知道如何解决这个问题。我想写一个新的spring listener?或者其他方式。谢谢。

如果我理解正确,您希望您的罐子100%自给自足。
这将很难实现
项目的用户需要一些起点来引导配置。 您需要提供一些文档。 无论如何,我可以提出以下建议

坚持在DAO、user@Repository@Autowire等中尽可能匹配注释。这样,您只需要要求jar的用户将以下内容添加到他们的应用程序上下文中

<context:component-scan base-package="your.dao.package"/>

使用默认的persistence.xml命名标准,并将persistence.xml放在META-INF目录下。不要指定持久性单元名称。 如果用户不使用persistenceUnitName定义EntityManagerFactory,它将加载您的配置。 用户必须使用emf jpaVendorAdapter和datasource属性来定义is自定义数据库配置 例如:

<bean id="emf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="jpaVendorAdapter" ref="jpaVendorAdapter" />
    </bean>
    <bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
        <property name="database" value="HSQL" />
        <property name="showSql" value="true" />
        <property name="databasePlatform" value="org.hibernate.dialect.HSQLDialect" />
    </bean>


正如您所看到的,当坚持spring约定时,您可以接近自包含的jar。无论如何,您需要给您的jar用户一些提示

我建议您重新措辞并完善您的问题。我觉得很难理解。不管怎样,我试着回答,见下文