我有一个非常基本的spring boot命令行应用程序,我试图从我的项目中存在的application.yml文件加载属性。该项目使用gradle构建,我使用groovy作为语言。
现在无论我放置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项目下,但是worker类的run方法始终将该属性打印为null。我相信我可能错过了一些非常基本的东西,但似乎无法找到它的内容。
如果我需要提供任何其他详细信息,请与我们联系。
答案 0 :(得分:1)
application.yml
应该在src/main/resources/config
之下。
从src/main/resources
目录处理(复制)资源。
默认情况下,groovy插件会忽略src/main/groovy
中除groovy类之外的其他类。