如何解决如何在Spring Boot Web应用程序的Bean初始化代码中获取随机http端口?
我有一个 Spring Boot 应用程序,我在设置中将 http 端口设置为随机 (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 初始值设定项中检索到使用随机端口?
解决方法
你可以在配置文件中这样定义
server:
port: ${random.int(1000,9999)}
,
试试
@Autowired
Environment environment;
String port = environment.getProperty("server.port");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。