1. 程式人生 > >SpringBoot項目屬性配置

SpringBoot項目屬性配置

symbol 環境 file targe wire pub -s 使用 number

如果使用IDEA創建Springboot項目,默認會在resource目錄下創建application.properties文件,在SpringBoot項目中,也可以使用yml類型的配置文件代替properties文件,下面我們具體介紹:

1.應用配置文件(.properties或.yml):

1.在resource目錄下創建application.properties文件,並添加一些配置:

server.port=8081
server.context-path=/girl

2.在resource目錄下創建application.yml文件,並添加一些配置:

#註意:在yml文件中添加value值時,value前面需要加一個空格  
server:
  port: 8081
  context-path: /girl #使用localhost:8081/girl/hello
cupSize :B

2.單個的獲取配置文件中的內容:

在字段上使用@Value("${配置文件中的key}")的方式獲取單個的內容

1.在resource目錄下創建application.yml文件,並添加一些配置,在yml文件中,key:後面需要添加一個空格,然後是value值,假設配置如下:

#註意:在yml文件中添加value值時,value前面需要加一個空格  
ip: 127.0.0.0   
port: 8080  

2.創建一個ConfigController類,獲取配置文件中的內容並賦值給相應的字段:

@RestController  
public class ConfigController {    
    @Value("${ip}")//獲取application.yml文件中名為ip的value值  
    private String ip;  
    @Value("${port}")//獲取application.yml文件中名為port的value值,並且自動完成數據類型轉換  
    private Integer port;    
    @RequestMapping("/config")  
    public String config() {  
        return "ip:"+ip+",port:"+port;  
    }  
}  

3.在瀏覽器中輸入http://localhost:8080/config,可以看到輸出了配置文件中配置的內容:

技術分享

4.當然也可以在配置裏面使用當前配置,如下:

ip: 127.0.0.0   
port: 8080  
content: "ip:${ip},port:${port}"

@Value("${content}")
private String content;

3.使用Bean自動註入獲取配置文件中的內容:

假如配置文件中有很多內容,一個一個獲取將會很麻煩,那麽我們另外一種方式去獲取配置文件中的信息

1.在配置文件中添加以下信息(註意格式),此處我們使用了一個名為devconfig的前綴:

devconfig:  
  ip: 127.0.0.0  
  port: 8080  

2.創建ConfigBean,在類中添加@Componet和@ConfigurationProperties註解,其prefix設置為devconfig,將獲取yml中前綴為devconfig下的配置信息:

@Component  
@ConfigurationProperties(prefix = "devconfig")//獲取前綴為devconfig下的配置信息  
public class ConfigBean {   
    private String ip;//名字與配置文件中一致  
    private Integer port;    
    public String getIp() {  
        return ip;  
    }    
    public void setIp(String ip) {  
        this.ip = ip;  
    }    
    public Integer getPort() {  
        return port;  
    }    
    public void setPort(Integer port) {  
        this.port = port;  
    }  
}  

3.在ConfigController中使用@Autowrite對bean自動註入,實例化bean:

@RestController  
public class ConfigController {   
    //自動註入,實例化bean  
    @Autowired  
    private ConfigBean configBean;  
    @RequestMapping("/config")  
    public String config() {  
        return "另一種方式:   ip:"+configBean.getIp()+",port:"+configBean.getPort();  
    }  
}  

4.多個配置文件切換的使用:

1.假設開發環境使用ip為:127.0.0.0,使用端口為:8080,生產環境使用ip為:127.0.0.1,使用端口為:8081

下面來修改配置文件,在resource目錄下創建application-produce.yml和生產環境配置文件application-dev.yml:

config:  
  ip: 127.0.0.0  
  port: 8080  
config:  
  ip: 127.0.0.1  
  port: 8081  

application.yml中配置生效的配置文件,此處設為produce,也就是使用application-produce.yml文件:

spring:  
  profiles:  
    active: produce  

2.也可通過啟動jar包時添加參數來更改生效的配置文件,命令為:java -jar XXX.jar –spring.profiles.active=poduce(這樣就可以多環境下同時使用了)

SpringBoot項目屬性配置