配置类,

@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/


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!