2015-10-08 68 views
0

我有一個非常基本的彈簧引導命令行應用程序,我試圖從我的項目中存在的application.yml文件加載屬性。該項目使用gradle構建,我使用groovy作爲語言。無法加載Spring引導中的外部屬性

現在,無論我放置application.yml文件,我似乎都無法將其值分配給配置屬性bean。該文件如下

application.yml

my: 
    name: "some name" 
    servers: 
    - dev.bar.com 
    - foo.bar.com 

Config.groovy中

import org.springframework.boot.context.properties.ConfigurationProperties 
import org.springframework.context.annotation.Configuration 

@Configuration 
@ConfigurationProperties(prefix = "my") 
public class Config { 

    private List<String> servers = new ArrayList<String>(); 
    private String name 

    public List<String> getServers() { 
     return this.servers; 
    } 

    public String getName() { 
     return this.name 
    } 
} 

Worker.groovy命令行亞軍

@Component 
class Worker implements CommandLineRunner { 

    @Autowired 
    Config config 

    @Override 
    public void run(String... args) throws Exception { 
     println "Running a test app" 
     println config.name 
     println config.getServers() 
    } 
} 

目錄結構

app-name 
    -build.gradle 
    -src 
    -main 
     -groovy 
     -config 
      -application.yml 
     -com 
      -company 
      -app 
       Worker.groovy 
       Config.groovy 
       Application.groovy 

我也試過application.yml重命名爲application.properties還有com.company.app項目下增加了,但工人類的run方法始終打印屬性爲空。我相信我可能錯過了一些非常基本的東西,但似乎無法找到它有什麼。

讓我知道我是否需要提供任何額外的細節。

+0

工作正常!我希望這些文件更清晰。你爲什麼不把它作爲答案而不是評論發佈,我會接受它作爲一個有效的答案?謝謝!! – bythe4mile

回答

1

application.yml應去src/main/resources/config

src/main/resources目錄處理(複製)資源。

默認情況下,groovy插件會忽略除src/main/groovy以外的常規類。

相關問題