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中Lamda表达式讲解

    java中Lamda表达式讲解

    本文详细讲解了java中的Lamda表达式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • java中synchronized关键字的3种写法实例

    java中synchronized关键字的3种写法实例

    synchronized是Java中的关键字,是一种同步锁,下面这篇文章主要给大家介绍了关于java中synchronized关键字的3种写法,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-11-11
  • SpringBoot接口调用之后报404问题的解决方案

    SpringBoot接口调用之后报404问题的解决方案

    这篇文章主要介绍了SpringBoot接口调用之后报404问题的解决方案,具有很好的参考价值,希望对大家有所帮助。
    2021-06-06
  • Nacos-SpringBoot框架启动不加载bootstrap.yml的解决

    Nacos-SpringBoot框架启动不加载bootstrap.yml的解决

    这篇文章主要介绍了Nacos-SpringBoot框架启动不加载bootstrap.yml的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Mybatis -如何处理clob类型数据

    Mybatis -如何处理clob类型数据

    这篇文章主要介绍了Mybatis 如何处理clob类型数据的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Java并发编程之Exchanger方法详解

    Java并发编程之Exchanger方法详解

    这篇文章主要介绍了Java并发编程之Exchanger方法详解,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Go并发编程中使用channel的方法

    Go并发编程中使用channel的方法

    本文给大家介绍Go并发编程中使用channel的方法,通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-11-11
  • 详解Spring配置事务的五种方式

    详解Spring配置事务的五种方式

    这篇文章主要为大家详细介绍了Spring配置事务的五种方式,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • Java 使用Thumbnails对大图片压缩

    Java 使用Thumbnails对大图片压缩

    这篇文章主要介绍了Java 使用Thumbnails对大图片压缩,帮助大家更好的利用Java处理图片,感兴趣的朋友可以了解下
    2020-11-11
  • SpringBoot 钩子接口的实现代码

    SpringBoot 钩子接口的实现代码

    本文主要介绍了SpringBoot 钩子接口,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-08-08

最新评论