gpt4 book ai didi

spring-boot - Spring Boot 如何在应用服务器上工作

转载 作者:行者123 更新时间:2023-12-04 01:53:28 26 4
gpt4 key购买 nike

我正在将我们的 Spring REST 应用程序迁移到 Spring Boot 微服务。我有些疑惑:

据我所知,spring boot 有一个 main()它调用静态 run()它存在于 SpringApplication 中。所以,当我们在 Eclipse IDE 中将它作为“Java 应用程序”运行时,这个 main()被调用和 @SpringBootApplication注释发挥作用。但是当我在 Websphere Application Servers 上部署这个应用程序时,它是如何工作的,因为现在 main()不会被调用。那么如何在不调用 main() 的情况下加载所有 bean .

最佳答案

Spring Boot 隐式启动了一个嵌入式服务器,它包含在 spring-boot-starter-tomcat 中。依赖性。这就是为什么main()方法在引导环境中有效。

典型的解决方案是创建两个配置文件 - 一个用于启动开发,另一个用于部署 - 那么您可能有几个起点。

开发配置:

@Configuration
@Profile(Profiles.DEV)
@Import(AppConfig.class)
public class Application {

public static void main(String[] args) {
new SpringApplicationBuilder(Application.class)
.profiles(Profiles.DEV)
.run(args);
}
}

部署配置(适用于 WAS、tomcat 等):
@Configuration
@Profile(Profiles.DEPLOY)
@Import(AppConfig.class)
public class ApplicationTomcat extends SpringBootServletInitializer {

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application
.profiles(Profiles.DEPLOY)
.sources(ApplicationTomcat.class);
}
}

简介:
public class Profiles {

public final static String DEV = "dev";

public final static String DEPLOY = "deploy";
}

在您的部署配置文件中,不要忘记排除 spring-boot-starter-tomcat依赖并使其成为 war捆。

通过这种方式,您可以以标准方式在 WAS(或 tomcat,...)上部署应用程序,并使用 main() 在本地启动您的应用程序方法。

关于spring-boot - Spring Boot 如何在应用服务器上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51870138/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com