【spring boot】映射properties文件屬性--到Java對象


描述

將*.properties中的內容映射到java對象中;

主要步驟

  1. 添加 @Component 注解;
  2. 使用 @PropertySource 注解指定配置文件位置;
  3. 使用 @ConfigurationProperties 注解,設置相關屬性;

my.properties

author.name=ssslinppp
author.age=128
author.student.name=studentName
author.student.age=88

AuthorSettings.java

package com.sssppp;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "author")
@PropertySource("classpath:my.properties")
public class AuthorSettings {
	private String name;
	private Long age;
	private Student student;

	public Student getStudent() {
		return student;
	}

	public void setStudent(Student student) {
		this.student = student;
	}

	public String getName() {
		return name;
	}

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

	public Long getAge() {
		return age;
	}

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

Student.java

package com.sssppp;

public class Student {
	private String name;

	private int age;

	public Student() {
		super();
	}

	public Student(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}

	public String getName() {
		return name;
	}

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

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
	
	@Override
	public String toString() {
		return "Student [name=" + name + ", age=" + age + "]";
	}

}


測試類

package com.sssppp;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class Ch623 {

	@Autowired
	private AuthorSettings authorSettings;

	@RequestMapping("/ch623")
	public AuthorSettings index() {
		return authorSettings;
	}
}


測試結果

{"name":"ssslinppp","age":128,"student":{"name":"studentName","age":88}}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM