首页 > 其他分享 >SpringBoot中的yml文件中读取自定义配置信息

SpringBoot中的yml文件中读取自定义配置信息

时间:2023-06-24 12:12:01浏览次数:40  
标签:SpringBoot 自定义 image Value height width yml 属性

SpringBoot中的yml文件中读取自定义配置信息

开发中遇到的问题,百度的答案我都没有找到,去找大佬获取到的经验总结,这只是其中的一种方法,如果其他大佬有新的方法,可以分享分享。

一、非静态属性

1.1 yml文件

自定义配置信息,通过我们编写的代码读取。

image:
    path: E:\image  #存储文件的磁盘目录
    server: http://localhost:8082/image/ #文件访问基础路径

1.2 类

非静态属性中@Value生效

ps: 不是在控制层中拥有@Controller注解,说明没有把该类放进IOC容器中,启动类时会找不到@Value,在其他类中可以用@Component注解,将该类注册到IOC容器中,使得程序运行时,能够找得到。

@Value("${image.path}")
private String path;  // path = E:\image
//从配置文件中读取公共配置信息
@Value("${image.server}")
private String server;

二、 静态属性

2.1 yml文件

# 自定义二维码配置信息
qrcode:
  width: 600 # 二维码宽度
  height: 600 # 二维码高度

2.2 类

静态属性中@Value不生效

ps:使用@ConfigurationProperties注解来获取application.yml配置文件中的第一个属性名,接着只需要属性名和二级属性相同即可获取到。

// 想要在工具类的静态属性获取到application.yml配置文件内容的配置信息
// 1. 先加上注解
@Component // 注册到IOC容器
@ConfigurationProperties(prefix = "qrcode") // 获取到配置文件的属性
public class QRcodeUtil {
// 通过读取application.yml配置文件内容中的配置信息
//    @Value("${qrcode.width}")  // 再静态属性中@Value不生效
private static int width; //图形宽
 //    @Value("${qrcode.height}")
private static int height; //图形高
 
    // 3. 需要给属性值手动设置set方法
public void setWidth(int width) {
   QRcodeUtil.width = width;
}

public void setHeight(int height) {
   QRcodeUtil.height = height;
}

记录每一个学习瞬间

标签:SpringBoot,自定义,image,Value,height,width,yml,属性
From: https://www.cnblogs.com/MrDevil-k/p/17500895.html

相关文章

  • Springboot web 项目开发流程梳理总结
    项目开发流程梳理总结1.环境准备1.准备数据库表(user,order);2.创建springboot工程,引入对应的起步依赖(web,mybatis,mybatisx,mysql驱动,lombok);3.配置文件application.properties中引入mybatis的配置信息,准备对应的实体类;4.准备对应的mapper,service(接口,实现类),controlle......
  • 自定义镜像
    一、镜像结构镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。镜像是分层结构,每一层称为一个Layer:入口(Entrypoint):镜像运行入口,一般是程序启动的脚本和参数层(Layer):在BaseImage基础上添加安装包、依赖、配置等,每次操作都形成新的一层。基础镜......
  • jackson 自定义注解 JacksonAnnotation
    packagecom.heima.model.common.annotation;importcom.fasterxml.jackson.annotation.JacksonAnnotation;importjava.lang.annotation.ElementType;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotatio......
  • SpringBoot面试题
    SpringBoot中常见的面试题:1.SpringBoot中常用的注解有哪些:对于理解SpringBoot的自动配置(自动装配)原理作出铺垫。1.@SpringBootApplication:这个注解标识了SpringBoot的工程,这个注解标识了一个SpringBoot工程,它实际上是另外三个注解合成的。2.@SpringBootConfiguration:这个......
  • unreal engine 5.2 c++ 自定义gameplay
    1.新建c++工程2.打开worldsetting3.修改默认GamePlay4.依次新建对应GamePlay替换默认GamePlayDefaultPawnHUDPlayerControllerGameStatePlayerStateSpectatorPawn5.添加AhellogpGameModeBase默认构造函数#include"hellogpGameModeBase.h"#include......
  • springboot整合mysql和clickhouse多数据源
    1、添加依赖<!--MyBatis-PlusStarter--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.2.0</version></dependency>......
  • 基于SpringBoot实现SSMP整合的案例源码
    案例介绍:基于SpringBoot实现SSMP整合的案例之一(案例分析与模块创建)-掘金(juejin.cn)源码下载:点我......
  • springboot & mongodb test
    <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>下载方式https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-os-x/docker方式do......
  • 组件自定义事件(子传父组件)-$emit
    案例:将子组件Student中的name传给父App组件Student组件<template><divclass="student"><h3>学生姓名:{{name}}</h3><h3>学校性别:{{sex}}</h3><button@click="sendStuName">点我把学生名给App</but......
  • Springboot更改banner
    首先创建一个banner.txt。 将图像放到txt然后你启动就会发现: ......