配置类,
@Configuration
public class SpringContext {
@Bean
public BlockingQueue<String> queue(@Value("${queue.size}") int queueSize) {
return new LinkedBlockingQueue<>();
}
}
主类,
@SpringBootApplication
public class SpringContextTest {
public static void main(String[] args) {
final SpringApplication springApplication = new SpringApplication(SpringContext.class);
springApplication.setWebEnvironment(false);
springApplication.run();
System.out.println("queue.size" + System.getProperty("queue.size"));
}
}
应用程序.yml,
queue.size: 10
在启动主类时出现以下错误,
Caused by: java.lang.NumberFormatException: For input string: "${queue.size}"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0_144]
我是不是缺少一些注释?据我所知,我使用了 spring boot 应用程序所需的最少注释。 我看过一些类似的帖子,但没有帮助。还 尝试使用 --spring.config.location。
我的 Spring 入门版本:1.3.6.RELEASE
请您参考如下方法:
你的配置文件看起来更像一个 application.properties
而不是 application.yml
queue.size: 10
等效的 yml
应该是:
queue:
size: 10
更新
是的,两者都应该在 .yml
中工作,你是对的。我完全复制了您的示例并且成功了!
只需确保您的 application.yml
文件位于 src/main/resources/
的根目录中。当我在子目录中有 application.yml
文件时,我遇到了和你一样的错误,例如src/main/resources/com/myapp/