アプリのpersistence.xmlを次のようにしたいと思います
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="appName" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.dialect" value="${db.dialect'}"/>
<property name="javax.persistence.jdbc.driver" value="${db.driver}"/>
<property name="javax.persistence.jdbc.user" value="${db.user}"/>
<property name="javax.persistence.jdbc.password" value="${db.password}"/>
<property name="javax.persistence.jdbc.url" value="${db.url}"/>
</properties>
</persistence-unit>
</persistence>
ソースフォルダーのどこかにある単純なテキストファイルからこれらのプレースホルダー値を取得します。
Spring を使用すると可能であると読みました
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>classpath:com/foo/jdbc.properties</value>
</property>
</bean>
ただし、ここでは Spring を使用せず、Hibernate といくつかの Primefaces のみを使用しています。
出来ますか?
ありがとう!
編集: 言及していないこともありますが、参考までに、Shiro Security と Ant を使用していくつかのことを行っています。解決策を回答として投稿します。これにより、プロジェクトにデータベース パラメーターを含む 3 つの異なるファイルが作成されます。
- persistence.xml (ハイバネート)
- context.xml (白)
- database.properties (Ant の Flyway タスク用)