3

最近我开始了一个maven项目来构建一个用于集成的应用程序

春天,JPA,JSF

但是在自动生成的文件夹结构中,我可以看到一个名为

数据库属性

我也有一个

持久性.xml

现在我的问题是可以在这些文件中的任何一个中定义数据库连接,谁能告诉我 1. 哪种方式更好,为什么?2. 为什么我已经有了persistence.xml,却自动生成了db.properties 文件?

4

2 回答 2

0

我假设,从您提到 JSF 的事实来看,您正在构建一个 Web 应用程序以部署到应用程序服务器。我还警告这个问题,因为我不知道db.properties它来自哪里。

部署到应用程序服务器时,最好在容器中配置数据库连接并通过 JNDI 将它们公开给应用程序。这允许容器管理连接池和凭证,并将这些信息保留在您的 WAR/EAR 文件之外。它还确保您的 WAR/EAR 文件与特定的数据库实例无关,因此可以在任何环境中部署到容器而无需修改。

因此,我建议不要在persistence.xml.

另请参阅在 persistence.xml 和 spring 配置文件中配置数据源之间的区别,这是一个类似的问题 - 那里接受的答案更详细地表达了解决方案。

于 2013-09-06T12:49:46.163 回答
0

db.properties 文件类似于 messages.properties,用于定义键值对。之后我们将使用表达式语言中的键。所以配置只会在

persistence.xml 或 dataSource.xml

无论是首选选择,但我们将从 db.properties 以表达式语言的形式获取值,例如。

 driverClassName=com.mysql.jdbc.Driver

这是您的 db.properties 中的一个条目。您将在 persistence.xml 中使用它,如下所示。

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${driverClassName}" />
于 2013-09-10T04:36:35.860 回答