java—如何在SpringBootWeb应用程序的bean初始化代码中获得随机http端口?

jei2mxaa  于 2021-07-09  发布在  Java
关注(0)|答案(2)|浏览(342)

我有一个springboot应用程序,其中我在设置中将http端口设置为random(0)。我在应用程序中有一个组件在方法中获取端口:

@Autowired
private ServletWebServerApplicationContext webServerAppCtxt;

public void doWork() {
    int localHttpServerPort = webServerAppCtxt.getWebServer().getPort();

但是,当我尝试在bean初始值设定项中执行相同的代码时:

@Bean
public IMyBean myBean(ServletWebServerApplicationContext applicationContext) {

    int localHttpServerPort = applicationContext.getWebServer().getPort();

localhttpserver端口总是8080,所以使用随机端口不起作用。我的问题是,在调用bean初始值设定项方法之前,是否可以确保服务器/服务器上下文已完全初始化,以便可以在bean初始值设定项中检索使用随机端口?

polkgigr

polkgigr1#

您可以在配置文件中这样定义它

server:
  port: ${random.int(1000,9999)}
aurhwmvo

aurhwmvo2#

尝试

@Autowired
Environment environment;

String port = environment.getProperty("server.port");

相关问题