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.效果展示

如下(示例):

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

相关文章

  • java存储以及java对象创建的流程(详解)

    java存储以及java对象创建的流程(详解)

    下面小编就为大家带来一篇java存储以及java对象创建的流程(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Mybatis拦截器实现数据分表

    Mybatis拦截器实现数据分表

    当数据量比较多时,放在一个表中的时候会影响查询效率,本文主要介绍了Mybatis拦截器实现数据分表,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2024-01-01
  • JPA设置默认字段及其长度详解

    JPA设置默认字段及其长度详解

    JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。本文主要介绍了JPA如何设置默认字段及其长度,感兴趣的同学可以了解一下
    2021-12-12
  • Sharding JDBC读写分离实现原理及实例

    Sharding JDBC读写分离实现原理及实例

    这篇文章主要介绍了Sharding JDBC读写分离实现原理及实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • 解决pageHelper分页失效以及如何配置问题

    解决pageHelper分页失效以及如何配置问题

    这篇文章主要介绍了解决pageHelper分页失效以及如何配置问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • 利用java获取某个文件夹下的所有文件

    利用java获取某个文件夹下的所有文件

    这篇文章主要给大家介绍了关于如何利用java获取某个文件夹下的所有文件的相关资料,在从事web开发工作中,经常需要对本地某一个目录下的文件进行处理,需要的朋友可以参考下
    2023-07-07
  • spring boot + jpa + kotlin入门实例详解

    spring boot + jpa + kotlin入门实例详解

    这篇文章主要介绍了spring boot + jpa + kotlin入门实例详解 ,需要的朋友可以参考下
    2017-07-07
  • SpringBoot 回滚操作的几种实现方式

    SpringBoot 回滚操作的几种实现方式

    回滚操作是一种常见的操作,用于撤销之前执行的操作,本文主要介绍了SpringBoot回滚操作的几种实现方式,包含基于异常类型的回滚、基于自定义逻辑的回滚和基于数据库状态的回滚,感兴趣的可以了解一下
    2024-03-03
  • Springboot+Stomp协议实现聊天功能

    Springboot+Stomp协议实现聊天功能

    本示例实现一个功能,前端通过websocket发送消息给后端服务,后端服务接收到该消息时,原样将消息返回给前端,前端技术栈html+stomp.js,后端SpringBoot,需要的朋友可以参考下
    2024-02-02
  • 实战干货之基于SpringBoot的RabbitMQ多种模式队列

    实战干货之基于SpringBoot的RabbitMQ多种模式队列

    RabbitMQ 是一个由Erlang语言开发的AMQP的开源实现,支持多种客户端。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗,下文将带你深入了解 RabbitMQ 多种模式队列
    2021-09-09

最新评论