[十七]SpringBoot 之 使用自定义的properties

Springboot使用application.properties默认了很多配置。但需要自己添加一些配置的时候,我们应该怎么做呢。

如果继续在application.properties中添加

如:

test.t1=t1
test.t2=t2

定义配置类:

package me.shijunjie.config.properties;

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

@ConfigurationProperties(prefix="test")
public class Test1Settings {
    private String t1;
    private String t2;
    public String getT1() {
        return t1;
    }
    public void setT1(String t1) {
        this.t1 = t1;
    }
    public String getT2() {
        return t2;
    }
    public void setT2(String t2) {
        this.t2 = t2;
    }
    @Override
    public String toString() {
        return "Test1Settings [t1=" + t1 + ", t2=" + t2 + "]";
    }
}

若用新的配置文件

如我新建一个test.properties

test.t1=aaaa
test.t2=bbbb

需定义如下配置类

package me.shijunjie.config.properties;

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

@ConfigurationProperties(prefix="test", locations="classpath:test.properties")
public class Test2Settings {
    private String t1;
    private String t2;
    public String getT1() {
        return t1;
    }
    public void setT1(String t1) {
        this.t1 = t1;
    }
    public String getT2() {
        return t2;
    }
    public void setT2(String t2) {
        this.t2 = t2;
    }
    @Override
    public String toString() {
        return "Test2Settings [t1=" + t1 + ", t2=" + t2 + "]";
    }
    
}

最后注意在spring Boot入口类加上@EnableConfigurationProperties

package me.shijunjie.testspringboot3;

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

import me.shijunjie.config.properties.Test1Settings;
import me.shijunjie.config.properties.Test2Settings;

@SpringBootApplication
@EnableConfigurationProperties({Test1Settings.class, Test2Settings.class})
@ComponentScan("me.shijunjie")
public class App 
{
    public static void main( String[] args )
    {
        SpringApplication.run(App.class, args);
    }
}

使用定义的properties(不知道为什么,我这边用了Test1Settings就不能用Test2Settings,如果想两个都用,可以将Setting作为component扫描进spring容器中)

package me.shijunjie.controller;

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

import me.shijunjie.config.properties.Test1Settings;
import me.shijunjie.config.properties.Test2Settings;

@RestController
@RequestMapping("/test")
public class TestController {
    @Autowired
    private Test1Settings test1Settings;
    @Autowired
    private Test2Settings test2Settings;
    
    @RequestMapping("/testProperties")
    public String testProperties() {
        System.out.println(test1Settings);
        System.out.println(test2Settings);
        return "ok";
    }
}

 

posted @ 2017-03-06 15:03  GodTelMe  阅读(602)  评论(0编辑  收藏  举报