You can use Ant-style variable substitution in any of the tomcat xml config files, such as:
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>${foo}</url-pattern>
</servlet-mapping>
Where foo
is a Java System Property (sysprop).
You can't use OS Environment Variables (envvars) directly, I think...
To use envvars, you can put
set "CATALINA_OPTS=-DsomeJavaSysProp=%SOME_OS_ENVVAR%"
in bin/setenv.bat
(or similarly in bin/setenv.sh
for *nix). You may need to create that file. Tomcat will run this file when it starts.
As CATALINA_OPTS
is an envvar (as opposed to a command line option), it should not be visible by other users on the system (save ancient Unixes), though I haven't tested this.
http://tomcat.apache.org/tomcat-7.0-doc/config/
If you are using Spring, you can create a <context:property-placeholder/>
bean and then directly use envvars or sysprops in Spring XML config files (though not web.xml
).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…