我在两个位置运行Tomcat7Web应用程序;一个位置有一个MySQL数据库,另一个位置是SQL-Server。在webapp的context.xml文件中,我定义了两个<Resources>,它们包含两个数据库的数据库连接信息。因为我还在开发,所以我有时在家里使用MySQL服务器运行应用程序,有时在工作时使用SQL服务器运行应用程序。
到目前为止,我每次都要重新编译代码以连接到MySQL或SQL-Server,方法是更改以下行
//connect to MySQL
DataSource ds = (DataSource) env.lookup( "jdbc/mysql" );转到
//connect to SQL-Server
DataSource ds = (DataSource) env.lookup( "jdbc/sqlserver" );有没有一种简单的方法可以让web应用程序知道我在哪个位置,例如通过xml文件中的设置,这样webapp就知道它必须连接哪个数据库?
发布于 2012-04-03 00:58:44
使JNDI名称成为外部配置设置,您可以将其作为属性文件值或VM参数检索,也可以作为环境变量值检索。
例如,作为您put in the classpath的属性文件config.properties
db.jndi.name=jdbc/mysql如下所示:
Properties properties = new Properties();
properties.load(input);
String dbJndiName = properties.getProperty("db.jndi.name");或者作为您在服务器的启动脚本中指定的VM参数:
-Ddb.jndi.name=jdbc/mysql如下所示:
String dbJndiName = System.getProperty("db.jndi.name");发布于 2012-04-03 00:57:31
在应用程序的上下文定义中,只定义一个名称始终相同的数据源。根据您所在的位置更改数据源定义。
https://stackoverflow.com/questions/9980440
复制相似问题