- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 application.yml 而不是 application.properties
我正在使用:
我的 MCVE: https://github.com/OldEngineer1911/demo1
问题是:未加载属性。有人可以帮忙吗?
最佳答案
你有以下代码
@SpringBootApplication
public class Demo1Application {
public static void main(String[] args) {
SpringApplication.run(Demo1Application.class, args);
Products products = new Products(); <---------------------------------ERROR!!!
List<String> productsFromApplicationYml = products.getProducts();
System.out.println(productsFromApplicationYml.size()); // I would like to see 2
products.getProducts().forEach(System.out::println); // I would like to see "first" and "second"
}
@Component
@ConfigurationProperties(prefix="products")
public class Products {
private final List<String> products = new ArrayList<>();
public List<String> getProducts() {
return products;
}
}
错误在行 Products products = new Products();
你的主要方法。您不需要从 Spring 上下文中检索 bean,而是您自己在 JVM 中创建它。因此,它就像您创建它时一样是空的。
阅读更多内容以了解 Spring 如何为您的 spring bean 使用代理,而不是您编写的实际类。
你需要的是以下内容
public static void main(String[] args) {
ApplicationContext app = SpringApplication.run(Demo1Application.class, args)
Products products = app.getBean(Products.class); <---Retrieve the Proxy instance from Spring Context
List<String> productsFromApplicationYml = products.getProducts();
System.out.println(productsFromApplicationYml.size())
编辑:
您还错误地配置了您的 application.yml
文件。
products:
- first
- second
符号-
用于 spring 将尝试从 application.yml
序列化的复杂对象数组.检查我在 this SO thread 中的意思
考虑到您没有自定义对象的列表,而是原始的 List<String>
你的application.yml
应该是下面的形式
products: first,second
关于spring-boot - Yaml 属性未在 spring boot 中加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70552038/
我正在开发一个需要能够平均三个数字的 Facebook 应用程序。但是,它总是返回 0 作为答案。这是我的代码: $y = 100; $n = 250; $m = 300; $number = ($y
我只是无法弄清楚这一点,也找不到任何对我来说有意义的类似问题。我的问题:我从数据库中提取记录,并在我的网页上以每个面板 12 条的倍数显示它们。因此,我需要知道有多少个面板可以使用 JavaScrip
我是一名优秀的程序员,十分优秀!