spring 如何在Java中读取应用程序.yml文件

l0oc07j2  于 2023-05-05  发布在  Spring
关注(0)|答案(3)|浏览(216)

我写了一个电子邮件程序。但我不得不改变一些配置,所以在我的项目中,我需要知道如何从yaml读取我的loginUrl
下面的代码;

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

ohfgkhjo1#

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

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

如果是二级属性,路径为@Value("${yourFirstKey.loginUrl}")
更多关于使用Sping Boot 阅读YAML文件的文档。

rdlzhqv9

rdlzhqv92#

你可以像下面这样在你的类中使用@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)引用属性名称。这将允许Sping Boot 使用与放松绑定@ConfigurationProperties时相同的逻辑。例如,@Value(“{demo.item-price}”)将从www.example.com文件中获取demo.item-price和demo.itemPrice表单application.properties,以及从系统环境中获取DEMO_ITEMPRICE。如果使用@Value(“{demo.itemPrice}”),则不会考虑demo.item-price和DEMO_ITEMPRICE。

0md85ypi

0md85ypi3#

你可以在你的类中注入:

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

相关问题