db.properties vs persistence.xml哪个更好?

时间:2013-09-06 08:28:43

标签: java xml spring maven jpa

最近我开始了一个maven项目来构建一个集成

的应用程序
  

Spring,JPA,JSF

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

的文件
  

db.properties

我也有一个

  

的persistence.xml

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

2 个答案:

答案 0 :(得分:0)

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

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

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

中配置数据源

另见Difference between configuring data source in persistence.xml and in spring configuration files这是一个类似的问题 - 那里接受的答案更详细地表达了解决方案。

答案 1 :(得分: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}" />