一、springboot配置文件
核心配置文件和自定义配置文件。核心配置文件是指在resources根目录下的application.properties
或application.yml
配置文 件。为了不破坏核心文件的原生态,但又需要有自定义的配置信息存在,一般情况下会选择自定义配置文件来放这些自定义
信息,这里在resources/config
目录下创建配置文件config.properties
二、核心配置文件的两种读取方法
核心配置文件内容:
1 server: 2 profiles: 3 active: dev4 5 test: 6 hello: hello
(1)@Value("${键名}")
1 @RestController 2 @RequestMapping("/hello") 3 public class PushController extends BaseController { 4 5 @Value("${test.string}") 6 private String hello; 7 8 @RequestMapping("/test") 9 public void test() { 10 System.out.println("spring boot !:" + hello); 11 } 12 13 }
(2)使用Environment,env.getProperty("键名")
由于Enviroment有几种包,所以给出正确jar包地址:
import org.springframework.core.env.Environment;
1 @RestController 2 @RequestMapping("/hello") 3 public class PushController extends BaseController { 4 5 @Autowired 6 private Environment env; 7 8 9 @RequestMapping("/test") 10 public void test() { 11 System.out.println("spring boot !:" + env.getProperty("test.string")); 12 } 13 14 }
三、自定义配置文件的读取方法
自定义的config.properties的内容如下:
1 project.version=1.0-SNAPSHOT 2 project.name=boot
创建实体类MyConfig。
注意:springboot1.5版本以下@ConfigurationProperties有两个属性locations(指定配置文件的所在位置),
prefix(指定配置文件中键名称的前缀)。即@ConfigurationProperties(prefix = "project",locations = "classpath:config/config.properties")
但是1.5版本及以上的版本取消了locations属性,为了指定配置文件的
位置,使用@PropertySource(value = "自定义配置文件路径")指定文件所在位置。
1 @Component 2 @ConfigurationProperties(prefix = "project") 3 @PropertySource(value = "classpath:config/config.properties") 4 public class MyConfig { 5 private String version; 6 private String name; 7 8 public String getVersion() { 9 return version; 10 } 11 12 public void setVersion(String version) { 13 this.version = version; 14 } 15 16 public String getName() { 17 return name; 18 } 19 20 public void setName(String name) { 21 this.name = name; 22 } 23 }
1 @RestController 2 public class HelloController { 3 4 @Autowired 5 private MyConfig myConfig; 6 7 @RequestMapping(value = "/hello") 8 public String hello() { 9 return "hello spring boot! " myConfig.getVersion() + " " + myConfig.getName() ; 10 } 11 }