崛起於Springboot2.X + 配置文件詳解(10)

《SpringBoot2.X心法總綱》java

一、核心配置文件

springboot框架也被我認爲一個工具,它的主要核心文件爲application.properties,又能夠命名爲application.yml亦或者application.yaml,全部的與springboot集成框架等的配置屬性均可以在它裏面配置。mysql

    1.1 application.properties風格

server.port=8080

    1.2 application.yml 風格

server:
   port: 8080

注意冒號後面加空格,在填寫具體之redis

    1.3 @Value取值

列入:spring

mujiutian.haha=566

java類取值爲:sql

@Value("${mujiutian.haha}")
private String aa;

這樣就能夠獲取到配置文件中的值。數據庫

可是若是你輸入的是中文的話,會出現亂碼,因此在配置文件中添加配置:springboot

spring.http.encoding.charset=utf-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true

同時,在IDEA中的setting的文件編碼也須要一致,否則不會正常顯示中文,有的默認是GBKapp

這樣獲取配置文件中即使是中文的值也會正常顯示框架

    1.4 @ConfigurationProperties 取值

這個註解也可以取配置文件中的註解,不過通常主要用於一個配置類中,將配置文件的那些屬性集中到一個具體java類,而後贊成組成一個實體類對他封裝,通常用於mysql,redis等配置文件中工具

配置文件:

mujiutian.haha=愛你

具體類:

@Component
@ConfigurationProperties(prefix = "mujiutian")
public class TestConfig {

    private String haha;

    public String getHaha() {
        return haha;
    }

    public void setHaha(String haha) {
        this.haha = haha;
    }
}

最後在controller中獲取:

@Controller
public class Test1Controller {

    @Autowired
    TestConfig testConfig;

    @RequestMapping(value = "/test")
    public @ResponseBody String test1(){
        return testConfig.getHaha();
    }
}

也可以取出相同的值。兩種註解用於不一樣的場景。

    1.5 多配置文件切換

 通常咱們本身開發使用的數據庫與產品上線使用的數據庫是不同的,之前的ssm框架咱們是在xml中註釋這個xml文件,而後打開線上的庫,而如今springboot不一樣了,改變不是那麼的大,咱們分別建立多餘的兩個配置文件,名字不一樣,application-dev.properties和application-pro.properties這兩個配置文件咱們配置一樣的屬性,好比一個是server.port=8080,而另外一個是server.port=8098,咱們正常開發使用8080端口,線上環境切換到8098的端口,而後在主配置文件application.properties中配置爲:

spring.profiles.active=dev

後面的dev 就是咱們本身多添加文件的application-{name}.properties,當咱們想切換那個配置文件的時候,咱們能夠根據這個就能夠了。

相關文章
相關標籤/搜索