我应该在应用程序或应用程序服务器中定义数据源吗?

and*_*riy 12 java jboss datasource

我已经开发了两个不同团队的应用程序(在Jboss服务器上运行).一个团队在应用程序WAR文件中有数据源配置,另一个团队在应用程序服务器的standalone.xml内部有数据源配置.而且我不确定哪种方法更好.

因此,我在服务器的standalone.xml中定义数据源时发现了一些优点.

  • 在服务器的standalone.xml中定义数据源比在war文件中更安全.如果数据库连接凭证存储在服务器的standalone.xml中,几乎从未修改过,它比war文件中的密码更安全,war文件经常从开发人员的机器传输到服务器,所有开发人员都会传播数据库配置电脑.
  • 通过在standalone.xml中使用datasource,我们可以使war文件更小,因为JDBC驱动程序可以作为模块安装,并且可以从war文件中删除.此外,从类路径加载JDBC作为模块更有效.
  • 如果我们不希望应用程序开发团队知道数据库连接设置,我们可以将数据源放在standalone.xml中.

通过在应用程序WAR文件中使用数据源配置,我看到以下优点:

  • 开发团队无权在运行Jboss的环境中更改Jboss配置文件.因此,只能在应用程序中定义DB连接.
  • 当开发人员经常需要在不同的数据库连接之间切换时,它在开发状态下很有用.例如,开发人员可以在构建WAR文件时指定连接.

所以我想知道两种方法是否还有其他优点.你认为哪种方法更好?

res*_*day 5

除了问题中指出的要点外,在应用程序之外具有数据源的另一个优点是,它允许在不同区域中使用相同的war文件。这将允许团队在使用相同的war文件时针对不同的环境拥有不同的数据库,例如Test,Perf和Prod。

您可以进行一次部署,然后将经过质量检查团队测试的战争文件升级到生产区域。这将确保没有未经测试的代码进入更高的区域,同时避免了对SCM分叉和代码冻结的需求。