Spring Boot 中配置文件application.properties使用

一、配置文档配置项的调用(application.properties可放在resources,或者resources下的config文件夹里)

package com.my.study.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.my.study.model.Student;

@RestController
@SpringBootApplication
@RequestMapping("/user")
public class UserController {
    
    @Value("${test.stuName}")
    private String stuName;
    
    @Value("${test.stuSex}")
    private String stuSex;
    
    @RequestMapping("/test")
    public Object sayHello() {
        
        Student student = new Student();
        student.setStuName(stuName);
        student.setStuSex(stuSex);

        return student ;
    }

}

启动后在浏览器直接输入http://localhost:18080/user/test,就直接打印出配置文件中的配置内容。

二、绑定对象bean调用

有时候属性太多了,一个个绑定到属性字段上太累,官方提倡绑定一个对象的bean,这里我们建一个ConfigBean.java类,顶部需要使用注解@ConfigurationProperties(prefix = “test”)来指明使用哪个

注意:类中一定要有get set 方法,否则参数无法绑定

package com.my.study.model;

import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties(prefix ="test")
public class ConfigBean {
    
    private String stuName;
    
    private String stuSex;

    /* (non-Javadoc)
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        return "ConfigBean [stuName=" + stuName + ", stuSex=" + stuSex + "]";
    }

    /**
     * @return the stuName
     */
    public String getStuName() {
        return stuName;
    }

    /**
     * @param stuName the stuName to set
     */
    public void setStuName(String stuName) {
        this.stuName = stuName;
    }

    /**
     * @return the stuSex
     */
    public String getStuSex() {
        return stuSex;
    }

    /**
     * @param stuSex the stuSex to set
     */
    public void setStuSex(String stuSex) {
        this.stuSex = stuSex;
    } 

}

这里配置完还需要在spring Boot入口类加上@EnableConfigurationProperties并指明要加载哪个bean,如果不写ConfigBean.class,在bean类那边添加

package com.my.study;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;

import com.my.study.model.ConfigBean;

@SpringBootApplication
@EnableConfigurationProperties(ConfigBean.class)
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

最后在Controller中引入ConfigBean使用即可,如下:

package com.my.study.controller;

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

import com.my.study.model.ConfigBean;

@RestController
@SpringBootApplication
@RequestMapping("/user")
public class UserController {

    @Autowired
    ConfigBean configBean;

    @RequestMapping("/test")
    public Object sayHello() {

        return configBean;
    }

}

猜你喜欢

转载自www.cnblogs.com/lukelook/p/10583003.html