繁体   English   中英

如何从 Java 中的 application.yml 文件中读取

[英]How to read from application.yml file in Java

我写了一个电子邮件程序。 但是我必须更改一些配置,所以在我的项目中我需要知道如何从 yaml 中读取我的 loginUrl

我的代码如下;

userNotificationEmail.setIsActive("F");
                                userNotificationEmailRepository.save(userNotificationEmail);
                                activationResultType.setResultCode(ActivationResultCode.SUCCESSFUL);
                                activationResultType.setUser(userMapper.fromUser(userEntity));
                                activationResultType.setLoginUrl(loginUrl); 
                                return activationResultType;

如果你的密钥是loginUrl (在yaml文件中),你可以在Spring组件中使用@Value注释注入它的值。

@Value("${loginUrl}")
private String loginUrl;

如果它是二级属性,则路径为@Value("${yourFirstKey.loginUrl}")

有关使用Spring Boot读取YAML文件的更多文档

你可以在课堂上注入:

@Value("${propertie.name}") 
String value;

你可以在你的类中使用@Value 来注入值。

@Value("${property.name}") 
String propertyValue;

您仍然无法获得价值……也请考虑以下情况。

YML 文件:

authorization:
  server:
    baseUri: 'http://localhost:9090/'

使用@Value("${authorization.server.**base-uri**}")而不是@Value("${authorization.server.**baseUri**}")在控制器内获取 YML 值。

根据 spring 文档,这里要注意的关键点

如果您确实想使用@Value,我们建议您使用其规范形式(kebab-case 仅使用小写字母)引用属性名称。 这将允许 Spring Boot 使用与放松绑定 @ConfigurationProperties 时相同的逻辑。 例如,@Value("{demo.item-price}") 将从 application.properties 文件中获取 demo.item-price 和 demo.itemPrice 表单,以及从系统环境中获取 DEMO_ITEMPRICE。 如果您改用 @Value("{demo.itemPrice}"),则不会考虑 demo.item-price 和 DEMO_ITEMPRICE。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM