application.yml部分配置配置项如下: 配置项对应的类代码如下: 测试类代码如下: 在测试方法 测试类启动springboot程序时并没有以配置端口启动服务,所以我们要以配置端口的方式启动服务。 在 https://stackoverflow.com/questions/46684818/springboot-test-valueserver-port问题描述
server: port: 8080 domain: localhost
@Component @Data public class SiteConfig { //域名 @Value("${domain:#{null}}") private String domain; //端口号 @Value("${server.port:#{8081}}") private Integer port; }
@Slf4j @SpringBootTest class SiteConfigTest { @Resource private SiteConfig siteConfig; @Test void getDomain() { log.info("siteConfig: {}", siteConfig.getDomain()); assertEquals("localhost", siteConfig.getDomain()); } @Test void getPort() { log.info("Port: {}", siteConfig.getPort()); assertEquals(8080, siteConfig.getPort()); } }
getPort()
中,端口号port获取的值为-1。原因
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()]); }
解决
@SpringBootTest
中添加属性值@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
@Slf4j @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT) class SiteConfigTest { @Resource private SiteConfig siteConfig; @Test void getDomain() { log.info("siteConfig: {}", siteConfig.getDomain()); assertEquals("localhost", siteConfig.getDomain()); } @Test void getPort() { log.info("Port: {}", siteConfig.getPort()); assertEquals(8080, siteConfig.getPort()); } }
参考
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算