Прочитайте PropertyPlaceholderConfigurer в файле persistence.xml - PullRequest
2 голосов
/ 13 января 2012

Я знаю, что мы можем использовать бин Spring PropertyPlaceholderConfigurer в весеннем XML-файле, который читает указанный файл свойств и использует значения в XML-файле. Как мудро, есть способ, которым мы можем использовать этот механизм в моем файле persistence.xml .

Могу ли я использовать org.eclipse.persistence.jpa.PersistenceProvider в компоненте источника данных, подобном этому, в весеннем XML-файле? <bean id="dataSource" class="org.eclipse.persistence.jpa.PersistenceProvider"> <property name="javax.persistence.jdbc.driver" value="${datasource.driverClassName}" /> <property name="javax.persistence.jdbc.url" value="${datasource.url}" /> <property name="javax.persistence.jdbc.user" value="${datasource.username}" /> <property name="javax.persistence.jdbc.password" value="${datasource.password}" /> </bean> <bean id="entityManager" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean"> <property name="persistenceXmlLocation" value="classpath:./META-INF/persistence.xml"/> <property name="persistenceUnitName" value="JPAService"/> <property name="dataSource" ref="dataSource"/> </bean> Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 13 января 2012

Как я уже сказал в своем комментарии, первая часть невозможна, проверьте этот ТАК вопрос

Что касается второй части: да, это будет работать.Мы используем отдельный файл datasource.xml и импортируем его в контекст приложения для лучшей модульности.

spring-context.xml:

<import resource="classpath:datasouce.xml" />

datasource.xml:

<?xml version="1.0" encoding="UTF-8" ?>

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:task="http://www.springframework.org/schema/task"
    xmlns:jee="http://www.springframework.org/schema/jee" 
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd   
                        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   
                        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
                        http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd  
                        http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd   
                        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"
    default-autowire="byName">

    <bean id="myDatasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="username" value="..." />
        <property name="password" value="..." />
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/myTestDB" />
    </bean>

    <bean id="entityManagerFactory"
        class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="myDatasource"/>
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
               <property name="showSql" value="true" />
               <property name="generateDdl" value="true" />
               <property name="databasePlatform" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
            </bean>
        </property>
    </bean>

    <tx:annotation-driven transaction-manager="transactionManager"/>
    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" />

</beans>
0 голосов
/ 13 января 2012

Вместо того, чтобы использовать свою сборку для создания prod или dev версии вашего файла persistence.xml, просто перенесите все настройки свойств в содержимое Spring.

прочитайте оригинальный пост от emeraldjava загрузка .properties в spring-context.xml и persistence.xml

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...