• 【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}}
    
  • 相关阅读:
    Java日志框架
    分布式任务并发调度
    并发(三) CountDownLatch
    并发(二)CyclicBarrier
    并发(一) Semaphore
    MySql
    Hash
    由一个序列化框架的更换引发的问题
    navicat 12 激活
    Spring security
  • 原文地址:https://www.cnblogs.com/ssslinppp/p/6963788.html
Copyright © 2020-2023  润新知