SpringBoot yml configuration file assigns values to variables

 

1. Create the person class and the Car class, and add the annotation @ConfigurationProperties(prefix = "person") to the person class, indicating that the value of the member variable of this class is injected from the configuration class. Note that the member variables of the person class need to have get/set methods.


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. Create a yml configuration file for the person class.

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. Create a startup class and add the annotation @EnableConfigurationProperties(Person.class) to remind Person that the member variables of this class can be injected from the configuration file when starting.

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;
	}

}

 Test Results:

 

Guess you like

Origin blog.csdn.net/pengweismile/article/details/95916998