gpt4 book ai didi

java - 来自属性文件的 Persistence.xml 字段值

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:27:52 24 4
gpt4 key购买 nike

帮助,我想将我的持久性 xml 属性值引用到我的 db.properties 文件中。

这是我的 db.properties 文件

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/apsas
jdbc.username=root
jdbc.password=password

这是我当前的 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_2_0.xsd"
version="2.0">
<persistence-unit name="apsaspu" transaction-type="RESOURCE_LOCAL">
<provider>
org.hibernate.ejb.HibernatePersistence
</provider>
<properties>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/apsas" />
<property name="hibernate.connection.username" value="root" />
<property name="hibernate.connection.password" value="password" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
</properties>
</persistence-unit>
</persistence>

我想做的是把它的属性设置成这样

<?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_2_0.xsd"
version="2.0">
<persistence-unit name="apsaspu" transaction-type="RESOURCE_LOCAL">
<provider>
org.hibernate.ejb.HibernatePersistence
</provider>
<properties>
<property name="hibernate.connection.driver_class" value="${jdbc.driver}" />
<property name="hibernate.connection.url" value="${jdbc.url}" />
<property name="hibernate.connection.username" value="${jdbc.username}" />
<property name="hibernate.connection.password" value="${jdbc.password}" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
</properties>
</persistence-unit>
</persistence>

问题是如何将属性文件导入我的持久性 xml预先感谢那些愿意帮助我的人...

最佳答案

如果您使用的是 Maven,则可以为此使用源过滤。使用 this docs以供引用。我将概述一下这个过程。

您需要指定过滤路径。我不确定您是否必须明确定义包含的文件。

<build>
...
<resources>
<resource>
<directory>src/main/resources/META-INF</directory>
<filtering>true</filtering>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
...
</resources>
...
</build>

您定义的目录是相对于 pom.xml 的。

您现在可以定义常规 Maven 属性来替换 persistence.xml

中的占位符

如果你想在单独的 .properties 文件中拥有属性,你需要告诉 maven,在哪里可以找到该文件:

<filters>
<filter>db.properties</filter>
</filters>

过滤发生在 mvn resources:resources 上。此步骤是为您将在部署时执行的所有打包目标定义的。

您可以使用 Maven 配置文件在属性集或 .properties 文件之间切换。

关于java - 来自属性文件的 Persistence.xml 字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20485838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com