Spring Boot读取yml或者properties配置信息

文章目录

  • Spring Boot读取yml或者properties配置信息
    • 方法一:@Value获取基本信息,适用于少量信息
    • 方法二:通过注解@ConfigurationProperties(prefix = "spring.datasource")
    • 方法三:通过api Environment

Spring Boot读取yml或者properties配置信息

方法一:@Value获取基本信息,适用于少量信息

package com.geekmice.springbootselfexercise;import com.geekmice.springbootselfexercise.config.DataSourceProperties;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.env.Environment;
import org.springframework.test.context.junit4.SpringRunner;@Slf4j
@SpringBootTest(classes = SpringBootSelfExerciseApplication.class)
@RunWith(SpringRunner.class)
class SpringBootSelfExerciseApplicationTests {@Value("${server.port}")private String port;@Testvoid contextLoads() {log.info("端口号:【{}】",port);}}

在这里插入图片描述

方法二:通过注解@ConfigurationProperties(prefix = “spring.datasource”)

编写配置类

package com.geekmice.springbootselfexercise.config;import com.sun.media.jfxmedia.logging.Logger;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;/*** @BelongsProject: spring-boot-self-exercise* @BelongsPackage: com.geekmice.springbootselfexercise.config* @Author: pingmingbo* @CreateTime: 2023-08-05  23:12* @Description: TODO* @Version: 1.0*/@ConfigurationProperties(prefix = "spring.datasource")
@Component
@Data
public class DataSourceProperties {private String username;private String password;private String url;private String driverClassName;}

开始使用

package com.geekmice.springbootselfexercise;import com.geekmice.springbootselfexercise.config.DataSourceProperties;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.env.Environment;
import org.springframework.test.context.junit4.SpringRunner;@Slf4j
@SpringBootTest(classes = SpringBootSelfExerciseApplication.class)
@RunWith(SpringRunner.class)
class SpringBootSelfExerciseApplicationTests {@Autowiredprivate DataSourceProperties dataSourceProperties;@Testvoid contextLoads() {String username = dataSourceProperties.getUsername();String password = dataSourceProperties.getPassword();String url = dataSourceProperties.getUrl();String driverClassName = dataSourceProperties.getDriverClassName();log.info("用户名:【{}】",username);log.info("密码:【{}】",password);log.info("地址URL:【{}】",url);log.info("驱动类:【{}】",driverClassName);}
}

在这里插入图片描述

方法三:通过api Environment

package com.geekmice.springbootselfexercise;import com.geekmice.springbootselfexercise.config.DataSourceProperties;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.env.Environment;
import org.springframework.test.context.junit4.SpringRunner;@Slf4j
@SpringBootTest(classes = SpringBootSelfExerciseApplication.class)
@RunWith(SpringRunner.class)
class SpringBootSelfExerciseApplicationTests {@Autowiredprivate Environment environment;@Testpublic void t1(){String username = environment.getProperty("spring.datasource.username");String password = environment.getProperty("spring.datasource.password");String url = environment.getProperty("spring.datasource.url");String driverClassName = environment.getProperty("spring.datasource.driver-class-name");log.info("用户名:【{}】",username);log.info("密码:【{}】",password);log.info("地址URL:【{}】",url);log.info("驱动类:【{}】",driverClassName);}
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/29048.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小兔鲜项目 uniapp (1)

目录 项目架构 uni-app小兔鲜儿电商项目架构 小兔鲜儿电商课程安排 创建uni-app项目 1.通过HBuilderX创建 2.通过命令行创建 pages.json和tabBar案例 uni-app和原生小程序开发区别 用VS Code开发uni-app项目 拉取小兔鲜儿项目模板代码 基础架构–引入uni-ui组件库 操…

SSM个人博客项目

文章目录 SSM个人博客系统实现项目介绍 一、准备工作0. 创建项目添加对应依赖1. 数据库设计2. 定时实体类 二、功能实现1.统一功能处理统一返回格式统一异常处理定义登录拦截器 2. 注册登录实现生成获取验证码密码加盐实现注册功能登录功能注销功能 3.登录用户博客列表获取登录…

机器学习笔记之优化算法(十)梯度下降法铺垫:总体介绍

机器学习笔记之优化算法——梯度下降法铺垫:总体介绍 引言回顾:线搜索方法线搜索方法的方向 P k \mathcal P_k Pk​线搜索方法的步长 α k \alpha_k αk​ 梯度下降方法整体介绍 引言 从本节开始,将介绍梯度下降法 ( Gradient Descent,GD ) …

SpringCloud Gateway获取请求响应body大小

前提 本文获取请求、响应body大小方法的前提 : 网关只做转发逻辑,不修改请求、相应的body内容。 SpringCloud Gateway内部的机制类似下图,HttpServer(也就是NettyServer)接收外部的请求,在Gateway内部请求将会通过Htt…

RISC-V基础之函数调用(四)非叶函数调用(包含实例)

叶函数是指不调用其他函数,也不改变任何非易失性寄存器的函数2。叶函数通常是一些简单的操作,如数学运算或逻辑判断。叶函数的特点是可以通过模拟返回来展开,即不需要保存或恢复寄存器的状态。 非叶函数是指调用其他函数或改变非易失性寄存器…

电力巡检无人机助力迎峰度夏,保障夏季电力供应

夏季是电力需求量较高的时期,随着高温天气的来临,风扇、空调和冰箱等电器的使用量也大大增加,从而迎来夏季用电高峰期,电网用电负荷不断攀升。为了保障夏季电网供电稳定,供电公司会加强对电力设施设备的巡检&#xff0…

opencv基础-34 图像平滑处理-2D 卷积 cv2.filter2D()

2D卷积是一种图像处理和计算机视觉中常用的操作,用于在图像上应用滤波器或卷积核,从而对图像进行特征提取、平滑处理或边缘检测等操作。 在2D卷积中,图像和卷积核都是二维的矩阵或数组。卷积操作将卷积核在图像上滑动,对每个局部区…

瑞数系列及顶像二次验证LOGS

瑞数商标局药监局专利局及顶像二次验证 日期:20230808 瑞数信息安全是一个专注于信息安全领域的公司,致力于为企业和个人提供全面的信息安全解决方案。他们的主要业务包括网络安全、数据安全、应用安全、云安全等方面的服务和产品。瑞数信息安全拥有一支…

现在转行搞嵌入式找工作难不难啊?

对于应届生来说,嵌入式开发的经验不会有太多,所以要求也不会太高。 嵌入式开发常用的是C语言,所以需要你有扎实的功底,这一点很重要,数据结构算法,指针,函数,网络编程 有了上面的基…

web题型

0X01 命令执行 漏洞原理 没有对用户输入的内容进行一定过滤直接传给shell_exec、system一类函数执行 看一个具体例子 cmd1|cmd2:无论cmd1是否执行成功,cmd2将被执行 cmd1;cmd2:无论cmd1是否执行成功,cmd2将被执行 cmd1&cmd2:无论cmd1是否执行成…

源码分析——ConcurrentHashMap源码+底层数据结构分析

文章目录 1. ConcurrentHashMap 1.71. 存储结构2. 初始化3. put4. 扩容 rehash5. get 2. ConcurrentHashMap 1.81. 存储结构2. 初始化 initTable3. put4. get 3. 总结 1. ConcurrentHashMap 1.7 1. 存储结构 Java 7 中 ConcurrentHashMap 的存储结构如上图,Concurr…

winform控件 datagridview分页功能

主要实现页面跳转、动态改变每页显示行数、返回首末页、上下页功能,效果图如下: 主代码如下: namespace Paging {public partial class Form1 : Form{public Form1(){InitializeComponent();}private int currentPageCount;//记录当前页行数…

一个竖杠在python中代表什么,python中一竖代表什么

大家好,小编来为大家解答以下问题,一个竖杠在python中代表什么,python中一竖代表什么,今天让我们一起来看看吧! 维基百科页面是错误的,我已经更正了。|和&不是布尔运算符,即使它们是急切运算…

GODOT游戏引擎简介,包含与unity性能对比测试,以及选型建议

GODOT,是一个免费开源的3D引擎。本文以unity作对比,简述两者区别和选型建议。由于是很久以前写的ppt,技术原因视频和部分章节丢失了。建议当做业务参考。 GODOT目前为止遇到3个比较重大的基于,第一个是oprea的合作奖,…

13-把矩阵看作是对系统的描述

探索矩阵乘法:更深刻的理解与应用视角 🧩🔍 引言 📖 在我们进一步探讨矩阵乘法之前,让我们从不同的角度来理解什么是矩阵,以及如何将矩阵视为一个系统。我们之前已经介绍了矩阵的基本概念和运算&#xff…

手搓 自然语言模型 LLM 拆分em结构设计 网络参数对比

数据 数据集 新的em编码参数表 voc_sizehidden_sizetotaltotal Bmax_lensecondsdays65536512374865920.03749B10242560.2655361024828375040.08284B20485120.5655362048<

公检系统创新:利用校对软件优化法律文书流程

公检系统可以通过利用校对软件来优化法律文书的流程&#xff0c;从而提高效率和准确性。以下是在创新方面利用校对软件的一些方法&#xff1a; 1.自动校对和修正&#xff1a;校对软件可以与公检系统集成&#xff0c;自动检测文书中的拼写、语法和标点符号错误&#xff0c;并提供…

quill 富文本编辑器 @提及

使用插件quill-mention&#xff0c;实现在quill 富文本编辑器使用或#提及用户。 1. 安装 npm install quill-mention --save2. 官方给的示例quill-mention import "quill-mention";const atValues [{ id: 1, value: "Fredrik Sundqvist" },{ id: 2, va…

做嵌入式的门槛高吗,要996吗?

好像但凡编程序的&#xff0c;都有被称为IT工程师的可能&#xff0c;嵌入式&#xff08;软件&#xff09;自然而然在大家的眼中也是IT的范畴。作为IT届的标志性规则&#xff0c;996的确是基本每个互联网软件公司的标配。但是从我经历的几家嵌入式软件公司来看加班是必须有的&am…

【前端 | CSS】5种经典布局

页面布局是样式开发的第一步&#xff0c;也是 CSS 最重要的功能之一。 常用的页面布局&#xff0c;其实就那么几个。下面我会介绍5个经典布局&#xff0c;只要掌握了它们&#xff0c;就能应对绝大多数常规页面。 这几个布局都是自适应的&#xff0c;自动适配桌面设备和移动设备…