SpringBoot实现yml配置文件为变量赋值

目录
  • yml配置文件为变量赋值
    • 1. 创建person类和Car类
    • 2. 为person类创建yml配置文件
    • 3.创建启动类
  • 在yml文件中配置变量
    • 例如:二维码的内容

yml配置文件为变量赋值

1. 创建person类和Car类

在person类上加注释 @ConfigurationProperties(prefix = "person"),表明这个类的成员变量的值从配置类注入。

注意这里的person类的成员变量需要有get/set方法。

import org.springframework.boot.context.properties.ConfigurationProperties;
import java.util.Date;
import java.util.List;
import java.util.Map; 

@ConfigurationProperties(prefix = "person")
public class Person {
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    public boolean isMarriage() {
        return isMarriage;
    }

    public void setMarriage(boolean marriage) {
        isMarriage = marriage;
    }

    public Car getCar() {
        return car;
    }

    public void setCar(Car car) {
        this.car = car;
    }

    public List<String> getHobbit() {
        return hobbit;
    }

    public void setHobbit(List<String> hobbit) {
        this.hobbit = hobbit;
    }

    public Map<String, Object> getMaps() {
        return maps;
    }

    public void setMaps(Map<String, Object> maps) {
        this.maps = maps;
    }

    public Date getBirthDate() {
        return birthDate;
    }

    public void setBirthDate(Date birthDate) {
        this.birthDate = birthDate;
    }

    private String name;
    private Integer age;
    private double salary;
    private boolean isMarriage;
    private Car car;
    private List<String> hobbit;
    private Map<String, Object> maps;
    private Date birthDate;
}
public class Car {
    private String carName;
    private String carBrand;
    public String getCarName() {
        return carName;
    }

    public void setCarName(String carName) {
        this.carName = carName;
    }

    public String getCarBrand() {
        return carBrand;
    }

    public void setCarBrand(String carBrand) {
        this.carBrand = carBrand;
    }
}

2. 为person类创建yml配置文件

person:
  name: zhangsan
  age: 18
  salary: 8888.88
  car:
    carName: 奥迪A6L
    carBrand: 奥迪
  hobbit:
    - 篮球
    - rap
    - 唱歌
    - 保健
  maps:
    k1: v1
    k2: v2
  birthDate: 1991/08/21
  marriage: true

3.创建启动类

加上注释@EnableConfigurationProperties(Person.class),启动的时候提醒Person这个class的成员变量是可以从配置文件注入的。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@EnableConfigurationProperties(Person.class)
@RestController
public class Tulingspc01SpringbootPropertiesMappingApplication {

	@Autowired
	private Person person;
	public static void main(String[] args) {
		SpringApplication.run(Tulingspc01SpringbootPropertiesMappingApplication.class, args);
	}

	@RequestMapping("/getPersonInfo")
	public Person getPersonInfo() {
		return person;
	}
}

测试结果:

在yml文件中配置变量

在开发中很多内容不能写死在代码中

就需要动态的配置

例如:二维码的内容

yml文件里增加变量配置

QrCode:
  content: http://192.168.1.1:8081

在代码里获取信息的时候

@Value("${QrCode.content}")
private String content;

这样就可以获取yml文件里配置的内容了

降低了代码的耦合

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Springboot如何获取配置文件application.yml中自定义的变量并使用

    前言:在写项目中我们经常要将同样的变量在不同的文件中写无数次,这样修改起来要一通好找,非常不方便,平常都会写一个工具类存入自己的变量进行调用取值,但是呢,懒得写咋办,写了还要注入,注入失败又得.........麻烦,有没有办法写在配置文件中直接自定义变量通过注解的方式取值呢?肯定有啊. 正文: 一.在application.yml中配置自己的变量比如: person: name: '张三' age: '年龄25' home: '拥有房子1套' car: '轿车1辆' 二.使用注解取值并且使用 i

  • Springboot 读取 yml 配置文件里的参数值

    目录 方式一 方式二 总结 方式一 1.yml配置 yml配置(示例): api: mes: MES_SOCKET: http://192.168.99.140:8081 2.读取 代码如下(示例): package com.jack.modules.wms.api.common.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; impor

  • springboot yml配置文件值注入方式

    目录 yml配置文件值注入 搭建项目 创建实体类 spring boot核心配置文件application.yml 测试类 运行 自动注入yml文件和properties文件 yml文件的自动注入class Properties配置文件自动注入 代码中直接注入 yml配置文件值注入 搭建项目 参考 IDEA快速搭建spring-boot项目(Spring initializr) pom.xml 创建项目后,还需在pom.xml中的<dependencies>标签添加该依赖. <depen

  • SpringBoot实现yml配置文件为变量赋值

    目录 yml配置文件为变量赋值 1. 创建person类和Car类 2. 为person类创建yml配置文件 3.创建启动类 在yml文件中配置变量 例如:二维码的内容 yml配置文件为变量赋值 1. 创建person类和Car类 在person类上加注释 @ConfigurationProperties(prefix = "person"),表明这个类的成员变量的值从配置类注入. 注意这里的person类的成员变量需要有get/set方法. import org.springfram

  • springboot 使用yml配置文件给静态变量赋值教程

    声明: 此处需求是修改封装的clickhouseUtil数据查询引擎连接工具类.由于此类中的方法都是静态方法.连接地址等参数需要根据不同环境改变.例如开发下地址,测试下地址,生产地址等,所有通过配置文件来获取不同环境下的配置参数,但是使用的方法是静态的,所有不能使用一般情况下的@value直接给变量赋值,需要用到spring 属性的set方法来给静态变量赋值,然后静态方法使用静态变量即可 方法: 第一步:在yml文件中配置需要的参数 clickhouse: address: jdbc:click

  • springboot的yml配置文件通过db2的方式整合mysql的教程

    springboot整合MySQL很简单,多数据源就master,slave就行了,但是在整合DB2就需要另起一行,以下是同一个yml文件 先配置MySQL,代码如下 spring: datasource: type: com.alibaba.druid.pool.DruidDataSource druid: # 主库数据源 master: url: jdbc:mysql://localhost:3308/<数据库名>?useUnicode=true&characterEncoding

  • SpringBoot在yml配置文件中配置druid的操作

    最新版的druid和旧版在filter配置方面有些不同,以下是旧版druid中配置filter: spring: ##数据库连接信息 datasource: url: jdbc:mysql://localhost:3306/young username: root password: root driver-class-name: com.mysql.jdbc.Driver ###################以下为druid增加的配置########################### t

  • springboot注入yml配置文件 list报错的解决方案

    目录 springboot注入yml配置文件 list报错 注入list的正确方法 springboot yml 配置文件注入Map,List springboot注入yml配置文件 list报错 springboot中yml配置注入一般使用@Value注解可注入String类型数据,比如: @Value("${config}") String stringConfig; 即可注入属性,而注入list使用此方法则会报错提示Could not resolve placeholder xx

  • SpringBoot从yml配置文件中读常用参数值实例方法

    SpringBoot现在基本上都是使用application-XXX.yml(生产环境为pro,开发测试环境为dev)来配置项目中的一些配置条件,在springboot中还可以通过从yml文件中将yml中的数据直接读取出来. 1.yml文件(这里设置参数的时候往往设置两层前缀,避免在调用的时候该属性中的部分参数名与计算机中的某些名字冲突) test: person: lastName: hello age: 18 boss: false birth: 2017/12/12 maps: {k1:

  • springboot自定义yml配置文件及其外部部署过程

    目录 1.序 2.加载自定义yml文件 2.1.使用@PropertiesSource注解读取yml配置文件-简单版 2.2.使用@PropertiesSource注解读取yml配置文件-不简单版? 2.3.加前缀可行版 3.外部部署 3.1.spring boot核心配置文件外部加载 3.2.在@PropertySource中添加路径 3.3.通过YamlPropertiesFactoryBean添加路径 3.4.自定义yaml文件资源加载类 1.序 背景:有个小项目需要后台,俺顶着Java菜

  • Springboot的yml配置文件用法

    目录 一.服务配置 二.数据库连接 三.Mybatis-Plus 四.日志打印 五.Redis 总结 一.服务配置 server: port: 8989 servlet: # context-path就是端口号与服务之间要加的一段路径,比如localhost:8080/wcm/login/login的/wcm就是 context-path: / 二.数据库连接 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url:

  • SpringBoot动态修改yml配置文件的方法详解

    目录 前言 具体实现 实现代码 测试 源码 总结 前言 记录下SpringBoot修改yml配置文件后无需重启服务的方式(打包后生效),效果如下: 具体实现 实现代码 pom.xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </d

随机推荐