Mej*_*jmo 3 spring spring-boot
是否有一些可靠的方法来检查Spring引导是否在JAR(独立嵌入式tomcat)或WAR(j2ee服务器)模式下运行?
没有内置的API来检查您正在运行的环境.可能最强大的方法是为您的应用程序使用不同的配置,具体取决于它是通过主方法还是通过其SpringBootServletInitializer子类启动的.你究竟应该做什么取决于你需要知道的原因以及个人偏好.
例如,您可以通过Environment,使用@Value等配置可以查询的属性:
@SpringBootApplication
public class ExampleApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(ExampleApplication.class).properties(
"com.example.mode:servlet-container");
}
public static void main(String[] args) throws Exception {
new SpringApplicationBuilder(ExampleApplication.class).properties(
"com.example.mode:standalone").run(args);
}
}
Run Code Online (Sandbox Code Playgroud)
另一种选择是ExampleApplication.class根据您运行的模式提供除了不同的配置类:
@SpringBootApplication
public class ExampleApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(ExampleApplication.class,
ServletContainerConfiguration.class);
}
public static void main(String[] args) throws Exception {
new SpringApplicationBuilder(ExampleApplication.class,
StandaloneConfiguration.class).run(args);
}
}
Run Code Online (Sandbox Code Playgroud)
正是你在做什么,ServletContainerConfiguration或者StandaloneConfiguration由你决定.例如,您可以发布一个记住模式的bean,然后在需要知道时查询它.
另一种选择是根据模式激活不同的配置文件.
| 归档时间: |
|
| 查看次数: |
3276 次 |
| 最近记录: |