Если у вас есть различия в конфигурации, которые выходят за пределы значений атрибутов, переменных может быть недостаточно. Например, предположим, что вы используете базу данных в памяти в dev (например, встроенный Derby) и более надежную базу данных в рабочей среде (например, DB2).
В ваш основной server.xml вы можете включить другой файл config xml, используя переменную, подобную этой:
<server>
<include location="dbconfig-${env.ENV_LOCATION}.xml"/>
<!-- rest of common config here -->
</server>
Тогда вы можете иметь конфигурацию только для разработчиков в dbconfig-dev.xml
, например:
<server>
<dataSource id="db" jndiName="jdbc/db">
<jdbcDriver libraryRef="DerbyLib"/>
<properties.derby.embedded databaseName="memory:testdb" createDatabase="create"/>
</dataSource>
<library id="DerbyLib">
<fileset dir="/path/to/derby.jar"/>
</library>
</server>
И конфигурация только для производства в dbconfig-prod.xml
, например:
<server>
<dataSource id="db" jndiName="jdbc/db">
<jdbcDriver libraryRef="DB2JCCLib"/>
<properties.db2.jcc databaseName="PRODUCTION_DB"
serverName="serious.business.com"
portNumber="50000"/>
</dataSource>
<library id="DB2JCCLib">
<fileset dir="/path/to/db2.jar"/>
</library>
</server>
Затем, в зависимости от того, какое значение установлено для ENV_LOCATION
, либо dbconfig-dev.xml
, либо dbconfig-prod.xml
будут включены в основной файл server.xml.