如何在Tomcat中存储简单的自定义设置

时间:2012-04-02 16:50:08

标签: tomcat

我在2个位置运行Tomcat 7 Web应用程序;在一个位置有一个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" );

是否有一种简单的(r)方法让Web应用程序知道我在哪个位置,例如使用xml文件中的设置,以便webapp知道它必须连接哪个数据库?

2 个答案:

答案 0 :(得分:1)

在应用程序的上下文定义中,仅定义一个始终具有相同名称的数据源。根据您所在的位置更改数据源定义。

答案 1 :(得分:1)

使JNDI名称成为外部配置设置,您可以将其作为属性文件值或VM参数检索,或者可以作为环境变量值。

E.g。作为属性文件config.properties,您put in the classpath

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");