db.properties和persistence.xml,哪一个更好?

3

最近我开始了一个maven项目,用于构建集成Spring、JPA和JSF的应用程序。

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

db.properties

的文件,同时我还有一个

persistence.xml

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


你用什么生成的? - Sander Verhagen
我使用了包含Spring、Hibernate和JSF的Maven原型。 - user2728475
哪个原型?我问这个问题是因为我曾经使用过这些技术,但 db.properties 并没有让我想起什么,所以我很好奇能否重现这个文件并了解它的内容 :) - Sander Verhagen
2个回答

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}" />

0

我猜测,从你提到JSF的事实来看,你正在构建一个Web应用程序以部署到应用服务器。但是我也要说明一下,我不知道db.properties是什么或者它来自哪里。

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

因此,我建议不要在persistence.xml中配置数据源。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接