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

时间:2013-10-15 03:21:31

标签: spring hibernate maven

在web.xml中读取jar的spring config xml

我创建了一个maven多模块maven项目。包含DAO模块。在这个模块中我使用hibernate和spring .i安装它。然后我创建一个独立的maven web项目。我使用这个jar。我不想使用classpath:xxx.xml。因为我希望其他人使用我的jar而不知道我的xml的名字,因为那个jar包含许多xml。我想知道如何解决这个问题。我试着写一个新的春天听众?或其他方式。谢谢。

1 个答案:

答案 0 :(得分:0)

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

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

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

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

<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>

正如您所看到的那样,在遵守弹簧惯例时,您可以接近自包含的罐子。无论如何,你需要给你的jar用户提供一些提示