server.port 在單元測試中,調用的類或者方法這個地方獲取到的端口號就會變成-1

@Value("${server.port}") 本文連接:https://blog.csdn.net/weixin_38342534/article/details/88698582 首先 @Value("${server.port}") 獲取端口號沒有任何問題,那麼問題出在那呢,出在單元測試中!!! 你在單元測試中,調用的類或者方法這個地方獲取到的端口號就會變成-1。 解決辦法:在後面加上下屬性 @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT) 原理: org.springframework.boot.test.context.SpringBootContextLoader#getInlinedProperties protected String[] getInlinedProperties(MergedContextConfiguration config) { ArrayList<String> properties = new ArrayList<String>(); // JMX bean names will clash if the same bean is used in multiple contexts
 disableJmx(properties); properties.addAll(Arrays.asList(config.getPropertySourceProperties())); if (!isEmbeddedWebEnvironment(config) && !hasCustomServerPort(properties)) { properties.add("server.port=-1"); } return properties.toArray(new String[properties.size()]); } 感謝某些大佬,你們能夠參照:https://stackoverflow.com/questions/46684818/springboot-test-valueserver-port
相關文章
相關標籤/搜索