File file = ResourceUtils.getFile("classpath:application.properties");
PropertiesFactoryBean propertiesFactoryBean = new PropertiesFactoryBean();
propertiesFactoryBean.setLocation(new PathResource(file.toPath()));
propertiesFactoryBean.afterPropertiesSet();
// you now have properties corresponding to contents in the application.properties file in a java.util.Properties object
Properties applicationProperties = propertiesFactoryBean.getObject();
// now get access to whatever property exists in your file, for example
String applicationName = applicationProperties.getProperty("spring.application.name");
对于Yaml资源
File file = ResourceUtils.getFile("classpath:application.yaml");
YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean();
factory.setResources(new PathResource(file.toPath()));
factory.afterPropertiesSet();
// you now have properties corresponding to contents in the application.yaml file in a java.util.Properties object
Properties applicationProperties = factory.getObject();
// now get access to whatever property exists in your file, for example
String applicationName = applicationProperties.getProperty("spring.application.name");
3条答案
按热度按时间w41d8nur1#
您可以在没有Spring的情况下使用SnakeYAML。
下载依赖项:
然后,您可以通过以下方式加载.yaml(或.yml)文件:
Reference.
**编辑:**经过进一步调查,OP想知道如何在Sping Boot 中加载属性。Sping Boot 有一个内置的特性来读取属性。
假设你有一个application.properties,位于src/main/resources中,其中有一个条目
application.name="My Spring Boot Application"
,那么在你的一个类中用@Component
或它的任何子原型注解注解,可以像这样获取值:www.example.com文件中的属性application.property现在绑定到此变量
applicationName
您也可以有一个application.yml文件,并以这种方式编写相同的属性
您将以与上次相同的方式获得此属性值,方法是使用
@Value
注解a字段。cunj1qz12#
yaml中的平面属性
e3bfsja23#
我理解你的问题是关于使用.yaml和.properties文件访问内容***而不使用Spring框架,***但是***如果你可以在classpath中访问Spring框架并且不介意使用一些内部类,下面的代码可以以非常简洁的方式读取内容
对于属性文件:
对于Yaml资源