springboot读取application.yaml文件数据的方法
作者:兴奋の大公猴 发布时间:2023-09-06 05:29:24
标签: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.效果展示
如下(示例):
来源:https://blog.csdn.net/qq_46274901/article/details/124137423


猜你喜欢
- 1、0前言最近在学习 Go 语言,Go 语言中有指针对象,一个指针变量指向了一个值的内存地址。学习过 C 语言的猿友应该都知道指针的概念。G
- 这篇文章主要介绍了Spring使用@Autowired为抽象父类注入依赖代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一
- 首先,这两者是完全不同的概念,绝对不能混为一谈。1.什么是Java内存模型?Java内存模型是Java语言在多线程并 * 况下对于共享变量读写
- 某些情况下,我们需要在项目中对多种任务分配不同的线程池进行执行。从而通过监控不同的线程池来控制不同的任务。为了达到这个目的,需要在项目中配置
- 在C#的网络编程中,进程和线程是必备的基础知识,同时也是一个重点,所以我们要好好的掌握一下。一:概念首先我们要知道什么是”进程”,什么是“线
- 生产者工程POM依赖可以在创建工程时直接选择添加依赖。application文件因为rabbitmq具有默认地址及用户信息,所以如果是本地r
- 做了一个项目,首页是使用ResideMenu实现,通过菜单栏里的菜单项创建的Fragment;所以一个Activtiy里就包含多个Fragm
- 本文实例讲述了java生成jar包的方法,是非常实用的技巧。分享给大家供大家参考。具体分析如下:很多Java初学者都会有这样的疑问:Java
- Android上使调用OpenCV 2.4.10 实现二维码区域定位(Z-xing 码),该文章主要用于笔者自己学习中的总结,暂贴出代码部分
- 1.静态成员、实例成员1.1定义及说明数据成员:静态成员:静态成员变量是和类相关联的,可以作为类中"共"有的变量(是一个
- 前言这是该工具的github地址:https://github.com/pingfangushi/screw一、引入pom.xml依赖<
- 上次写了一篇博文,但是每次更新图标时,桌面会闪烁(刷新)https://www.jb51.net/article/73350.htm,有博友
- Bean Searcher 号称 任何复杂的查询都可以 一行代码搞定,但 Mybatis Plus 似乎也有类似的动态查询功能,它们有怎样的
- using System; using System.IO; using System.Data; using System.Text; u
- 在使用JDBC的时候,数据库据连接是非常宝贵的资源。为了复用这些资源,可以将连接保存在一个队列中。当需要的时候可以从队列中取出未使用的连接。
- 前言:最近终于用上了高性能的测试机(54C96G * 3),相较之前的单机性能提升了三倍,数量提升了三倍,更关键的宽带提单机升了30倍不止,
- 二叉树是一种非常重要的数据结构。本文总结了二叉树的常见操作:二叉树的构建,查找,删除,二叉树的遍历(包括前序遍历、中序遍历、后序遍历、层次遍
- 在Java世界中,AES、DES加密解密需要使用Cipher对象构建加密解密系统,Hutool中对这一对象做再包装,简化了加密解密过程。介绍
- 想在Linux进行JAVA开发吗?环境如何搭建,第一个HelloWorld如何实现,下面马上奉献:1、环境搭建1.1 Java JDK 的安
- 局限性只支持MP4文件经过尝试对于一些MP4文件分割不了依赖<!-- mp4文件操作jar --><!-- https:/