Ответ 1
Создайте файл для приложения, названного как файл войны приложения, и файл, который находится в каталоге Tomcat 7 conf/Catalina/localhost/.
Каждый файл может содержать некоторые переменные среды, специфичные для приложения.
Например, два приложения project1.war и project2.war развернуты в каталоге webapps.
В файле conf/Catalina/localhost/project1.xml
<Context path="" docBase="project1">
<Environment name="product" value="one" type="java.lang.String" override="false" />
</Context>
конф/Каталина/локальный/project2.xml
<Context path="" docBase="project1">
<Environment name="product" value="two" type="java.lang.String" override="false" />
</Context>
Также я не испытал двойное развертывание.
Мой хост сервера разработки:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" deployOnStartup="true">
И мой хост производственного сервера:
<Host name="www.learnintouch.com" appBase="webapps" unpackWARs="true" autoDeploy="true" deployOnStartup="true">
Чтобы получить значение переменной, я использую контекст условия Spring:
public class ProductProjectCondition implements Condition {
@Override
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
return context.getEnvironment().getProperty("product") == null || context.getEnvironment().getProperty("product").equals("project");
}
}
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Conditional(ProductProjectCondition.class)
public @interface ProductProject {
}
Затем можно использовать аннотацию @ProductProject.