SpringBoot读取yaml文件操作详解

 更新时间:2022年09月08日 09:40:10   作者:mzz124  
YAML 是 “YAML Ain’t Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言),本文给大家介绍的非常详细,需要的朋友可以参考下

1. 单个属性

yaml 内的属性如下:

server:
  port: 80

只需在成员变量上注解 @Value(“${属性名}”) 即可,用美元符号获取属性值

如下例:

@RestController
@RequestMapping("/")
public class DemoController {
    @Value("${server.port}")
    private String port;
    @GetMapping
    public String func() {
        return "server port: " + port;
    }
}

2. 全部属性

yaml 内的属性如下:

server:
  port: 80
logging:
  level: 
    root: warn

定义 Environment 成员变量,注解 @Autowired 即可,通过 .gerProperty(属性名) 函数来获取属性值

如下例:

@RestController
@RequestMapping("/")
public class DemoController {
    @Autowired
    private Environment environment;
    @GetMapping
    public String func() {
        String port = environment.getProperty("server.port");
        String level = environment.getProperty("logging.level.root");
        return "server port: " + port + "\n"
                + "logging level: " + level;
    }
}

3. 对象属性

yaml 内的属性如下:

mybook:
  name: 《SpringBoot入门》
  price: 28.00
  tags: [编程, Java, Spring]

首先要定义一个 bean,给类注解 @Component 表示添加到 Spring 容器,注解 @ConfigurationProperties 设置属性 prefix 为配置中的对象名,如下例:

@Component
@ConfigurationProperties(prefix = "mybook")
public class Book {
    private String name;
    private Double price;
    private String[] tags;
	// 省略了成员方法
}

使用自动装配填充即可,如下例:

@RestController
@RequestMapping("/")
public class DemoController {
    @Autowired
    private Book book;
    @GetMapping
    public String func() {
        return book.toString();
    }
}

补充:

当有多个类注解 prefix 的值为同一个对象时,IDEA会报错 Duplicated prefix,但不影响项目运行

补充

在刚才自定义 bean 时,IDEA 会报一个警告 Spring Boot Configuration Annotation Processor not configured,显示在页面的顶部,这个警告不会影响项目运行

在 pom.xml 中添加下面的依赖就可以解决:

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-configuration-processor</artifactId>
</dependency>

到此这篇关于SpringBoot读取yaml文件操作详解的文章就介绍到这了,更多相关SpringBoot读取yaml内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java parseInt解释加方法示例

    Java parseInt解释加方法示例

    使用此方法得到的原始数据类型的一个特定的字符串。 parseXxx()是一个静态方法,可以有一个参数或两个
    2013-11-11
  • 在Java中如何比较两个对象浅析

    在Java中如何比较两个对象浅析

    在工作中我们经常会遇到这样的需求——比较两个对象是否相等,如果不相等的话,取出不相等的字段,这篇文章主要给大家介绍了关于在Java中如何比较两个对象的相关资料,需要的朋友可以参考下
    2021-11-11
  • IDEA一致卡在build时间过长问题解决

    IDEA一致卡在build时间过长问题解决

    有很多小伙伴在起项目的时候巨慢,特别影响开发效率,本文主要介绍了IDEA一致卡在build时间过长问题解决,具有一定的参考价值,感兴趣的可以了解一下
    2024-06-06
  • Java 详解单向加密--MD5、SHA和HMAC及简单实现实例

    Java 详解单向加密--MD5、SHA和HMAC及简单实现实例

    这篇文章主要介绍了Java 详解单向加密--MD5、SHA和HMAC及简单实现实例的相关资料,需要的朋友可以参考下
    2017-02-02
  • java设计模式之浅谈适配器模式

    java设计模式之浅谈适配器模式

    我们现实生活中的适配器不少.例如,我们使用存储卡适配器连接存储卡和一个计算机,因为计算机仅支持一种类型的存储卡和我们的卡不与计算机兼容,适配器是两种不相容的实体之间的转换器,适配器模式是一种结构模式.本文就带大家了解一下java适配器模式,需要的朋友可以参考下
    2021-06-06
  • SpringBoot结合Swagger2自动生成api文档的方法

    SpringBoot结合Swagger2自动生成api文档的方法

    这篇文章主要介绍了SpringBoot结合Swagger2自动生成api文档的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • Servlet文件的上传与下载详解

    Servlet文件的上传与下载详解

    很多朋友不清楚在Servlet中怎么上传下载文件,谈到这个问题,首先需要我们掌握开发servlet的步骤,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2022-06-06
  • 解决Maven依赖冲突的方法

    解决Maven依赖冲突的方法

    本文主要介绍了解决Maven依赖冲突的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • Java JSON转成List结构数据

    Java JSON转成List结构数据

    这篇文章主要介绍了Java JSON转成List结构数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 在Spring Boot2中使用CompletableFuture的方法教程

    在Spring Boot2中使用CompletableFuture的方法教程

    这篇文章主要给大家介绍了关于在Spring Boot2中使用CompletableFuture的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2019-01-01

最新评论