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