Я только что реализовал профили Spring, в моем web.xml
я добавил профиль по умолчанию:
<context-param>
<param-name>spring.profiles.default</param-name>
<param-value>prod</param-value>
</context-param>
и в моем applicationContext.xml
теперь я могу легко переключаться между используемым файлом конфигурации:
<beans profile="dev">
<context:property-placeholder location="classpath*:META-INF/spring/dev.properties"/>
</beans>
<beans profile="prod">
<context:property-placeholder location="classpath*:META-INF/spring/prod.properties"/>
</beans>
и я сделал mvn jetty:run
всегда использовать профиль разработчика:
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.2.10.v20150310</version>
<configuration>
<webAppConfig>
<contextPath>/${project.artifactId}</contextPath>
<sessionHandler implementation="org.eclipse.jetty.server.session.SessionHandler">
<sessionManager implementation="org.eclipse.jetty.server.session.HashSessionManager">
<!-- Disable url sessions using JSessionID -->
<sessionIdPathParameterName>none</sessionIdPathParameterName>
</sessionManager>
</sessionHandler>
</webAppConfig>
<httpConnector>
<port>9091</port>
</httpConnector>
<systemProperties>
<systemProperty>
<name>spring.profiles.active</name>
<value>dev</value>
</systemProperty>
</systemProperties>
</configuration>
</plugin>
Как бы я переключался между различными конфигурациями log4j?
Я использую sl4j с log4j:
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
В dev я захожу в stdout
, а в продакшене я захожу в оба stdout
и queue
(очередь — rabbitMQ)?
Очевидно, что Spring еще не загружен, когда запускается log4j (не каламбур), поэтому кажется, что профили Spring отсутствуют.
Как я могу легко переключаться между различными конфигурациями log4j - log4j-dev.properties
и log4j-prod.properties