springboot读取application.yaml文件数据的方法

 更新时间:2022年07月29日 11:58:06   作者:兴奋の大公猴  
这篇文章主要为大家详细介绍了springboot读取application.yaml文件数据的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了springboot读取application.yaml文件数据的具体代码,供大家参考,具体内容如下

提示:以下是本篇文章正文内容,下面案例可供参考

一、创建并编辑对应的文件

1.application.yaml

!!!这里一定要注意,datasource一定不能写成dataSource,因为会和Spring内部的产生冲突

server:
  port: 8080

contry: china

user:
  - name: zhangsan
    age: 18
  - name: lisi
    age: 20

likes:
  - ball
  - code
  - game

baseDir: c:/win10

#使用${属性名}引用数据
tempDir: ${baseDir}/temp


#创建类:用于封装下面的数据
#由spring帮我们去加载数据对象中,一定告诉spring加载这组信息
#使用时候从spring中直接获取信息使用

datasource:
  driver: com.mysql.jdbc.Driver
  url: jdbc:mysql://localhost/springboot_db
  username: root
  password: root

2.MyDataSource

package com.codejams;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

//1.定义数据模型封装yaml文件中对应的数据
//2.定义为spring管控的bean
@Component
//3.指定加载的数据
@ConfigurationProperties(prefix="datasource")
public class MyDataSource {
    private String driver;
    private String url;
    private String username;
    private String password;

    @Override
    public String toString() {
        return "MyDataSource{" +
                "driver='" + driver + '\'' +
                ", url='" + url + '\'' +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

    public String getDriver() {
        return driver;
    }

    public void setDriver(String driver) {
        this.driver = driver;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

二、使用步骤

1.测试代码

代码如下(示例):

package com.codejams.controller;

import com.codejams.MyDataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("books")
public class BookController {

    //读取yaml文件
    @Value("${contry}")
    private String contry;

    @Value("${user[1].name}")
    private String name;

    @Value("${likes[1]}")
    private String like;

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

    //使用Environment对象封装所有数据
    @Autowired
    private Environment env;

    //查看datasource是否注入成功
    @Autowired
    private MyDataSource myDataSource;

    @GetMapping
    public String test(){
        System.out.println("running...");
        System.out.println(contry);
        System.out.println(name);
        System.out.println(like);
        System.out.println(tempDir);
        System.out.println("----------------------------");

        System.out.println(env.getProperty("contry"));
        System.out.println(env.getProperty("user[1].name"));
        System.out.println("----------------------------");

        System.out.println(myDataSource);


        return "running..";
    }
}

2.效果展示

如下(示例):

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot嵌套事务详解及失效解决方案

    SpringBoot嵌套事务详解及失效解决方案

    在复杂的业务场景中,嵌套事务可以帮助我们更加精细地控制数据的一致性,然而,在 Spring Boot 中,如果嵌套事务的配置不当,可能会导致事务不生效的问题,尤其是在同一个类中进行方法调用时,本文将详细介绍嵌套事务的原理、失效的原因以及解决方案
    2025-01-01
  • Java并发编程ReentrantReadWriteLock加读锁流程

    Java并发编程ReentrantReadWriteLock加读锁流程

    这篇文章主要介绍了Java并发编程ReentrantReadWriteLock加读锁流程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • Spring AOP面向切面编程实现及配置详解

    Spring AOP面向切面编程实现及配置详解

    这篇文章主要介绍了Spring AOP面向切面编程实现及配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • SpringCloud Gateway动态转发后端服务实现过程讲解

    SpringCloud Gateway动态转发后端服务实现过程讲解

    这篇文章主要介绍了SpringCloud Gateway动态转发后端服务实现过程,简单的路由转发可以通过SpringCloudGateway的配置文件实现,在一些业务场景种,会需要动态替换路由配置中的后端服务地址,单纯靠配置文件无法满足这种需求
    2023-03-03
  • Java split 分隔空值无法得到的解决方式

    Java split 分隔空值无法得到的解决方式

    这篇文章主要介绍了Java split 分隔空值无法得到的解决方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • Java判断字符串是否是整数或者浮点数的方法

    Java判断字符串是否是整数或者浮点数的方法

    今天小编就为大家分享一篇Java判断字符串是否是整数或者浮点数的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • JPA之QueryDSL-JPA使用指南

    JPA之QueryDSL-JPA使用指南

    Springdata-JPA是对JPA使用的封装,Querydsl-JPA也是基于各种ORM之上的一个通用查询框架,使用它的API类库可以写出Java代码的sql,下面就来介绍一下JPA之QueryDSL-JPA使用指南
    2023-11-11
  • java基础的详细了解第七天

    java基础的详细了解第七天

    这篇文章对Java编程语言的基础知识作了一个较为全面的汇总,在这里给大家分享一下。需要的朋友可以参考,希望能给你带来帮助
    2021-08-08
  • Java程序单实例运行的简单实现

    Java程序单实例运行的简单实现

    这篇文章主要介绍了Java程序单实例运行的简单实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • java代码实现双向链表

    java代码实现双向链表

    这篇文章主要为大家详细介绍了java代码实现双向链表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05

最新评论