springboot讀取配置檔案的配置項值
阿新 • • 發佈:2018-12-17
三種方式讀取: (一) 通過springboot帶有的Environment 類讀取
(二) 通過使用@Value讀取
(三) 通過新增一個配置類,使用@ConfigurationProperties讀取 使用步驟: ① 新增一個配置類,在類名上面使用@ConfigurationProperties;若讀取的配置檔案不是預設的application.properties,則需再新增@PropertySource(“xxx.properties”)註解 ② 在引導類上面新增;@EnableConfigurationProperties(value=類名.class) ③ 使用;在需要的地方使用@Autowired注入該物件即可
程式碼:
引導類:
@SpringBootApplication
//方式三需要新增該註解
@EnableConfigurationProperties(MyProperties.class)
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
測試類:
@RestController public class DemoController { @Autowired private Environment environment; @Value("${spring}") private Integer password; @Value("${spring.activemq.user}") private String userName; @Autowired private MyProperties myProperties; @RequestMapping("/test") public String demo() { // 方式一 System.out.println("方式一---------"+environment.getProperty("spring.env.pass")); System.out.println("方式一--------"+environment.getProperty("spring.env.user")); //方式二 System.out.println("方式二---------"+password); System.out.println("方式二---------"+userName); //方式三 System.out.println("方式三---------"+myProperties.getSex()); System.out.println("方式三---------"+myProperties.getUrl()); return "successful"; } }
方式三的配置類:
/** * @ConfigurationProperties 獲取application.properties檔案中配置項值 * prefix表示配置檔案中的配置項字首 * ignoreUnknownFields表示是否忽略在檔案中但是本類又沒有屬性對應的情況 * * @PropertySource 獲取配置檔名 如果是預設配置檔案application.properties或application.yml,則可以省略該註解 */ @ConfigurationProperties(prefix="spring.my",ignoreUnknownFields=true) @PropertySource("app.properties") public class MyProperties { private String url; private String sex; public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }
配置檔案: 預設的application.properties
spring.env.pass=88888
spring.env.user=jack
spring=12356
spring.activemq.user=zeng11
自定義的配置檔案app.properties:
spring.my.url=www.baidu.com
spring.my.sex=male
pom.xml檔案
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.17.RELEASE</version>
</parent>
<groupId>com.abc.springboot</groupId>
<artifactId>spring-boot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 支援熱部署(快速重啟) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<!-- 不向下傳遞依賴 -->
<optional>true</optional>
</dependency>
</dependencies>
</project>