Spring Boot 學(xué)習(xí)之路二 配置文件 application.yml

一、創(chuàng)建配置文件

如圖所示,我們?cè)趓esources文件夾中新建配置文件application.yml

結(jié)構(gòu)圖

二、一些基本配置

server:  
  port: 8090  //配置端口
  session-timeout: 30  
  tomcat.max-threads: 0  
  tomcat.uri-encoding: UTF-8  
  
spring:  
  datasource:  //數(shù)據(jù)庫配置
    url : jdbc:mysql://localhost:3306/newbirds  
    username : root  
    password : mymysql  
    driverClassName : com.mysql.jdbc.Driver  

注意:key后面的冒號(hào),后面一定要跟一個(gè)空格

三 、自定義的配置

1、在application.yml文件中我們自己定義了age 、name 、manInfo等參數(shù),其中manInfo引用了age、name,引用的格式"${參數(shù)名}"

server:
  //端口
  port: 8081 

age: 18
name: jason
manInfo: "age:${age},name:${name}"

怎么使用這些配置呢?我們創(chuàng)建GetManInfo文件(參照上面結(jié)構(gòu)圖),
使用配置格式

@Value("${配置文件中的參數(shù)名}")
類型 參數(shù)名

詳細(xì)如下

package com.alun;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

/**
 * Created by Administrator on 2017/5/28.
 */
@RestController
public class GetManInfo {

//獲取配置文件中的age
    @Value("${age}")
   private int age;

//獲取配置文件中的name
    @Value("${name}")
    private String name;

//獲取配置文件中的manInfo
    @Value("${manInfo}")
    private String manInfo;

    @RequestMapping(value = "/getAge",method= RequestMethod.GET)
    public  int getAge(){
     return age;
    }

    @RequestMapping(value = "/getName",method= RequestMethod.GET)
    public  String getNme(){
        return name;
    }

    @RequestMapping(value = "/getManInfo",method= RequestMethod.GET)
    public  String getManInfo(){
        return manInfo;
    }
}

2、一個(gè)一個(gè)的@Value獲取覺得很煩,有辦法解決么?這個(gè)....當(dāng)然有啊!

在application.yml我們改成這樣

server:
  port: 8081

manInfo:
    age: 18
    name: jason

新建一個(gè)ManInfoProperties文件,(結(jié)構(gòu)參照結(jié)構(gòu)圖)使用
@Component
@ConfigurationProperties( prefix = "配置文件里的參數(shù)名" )

package com.alun;


import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * Created by Administrator on 2017/5/28.
 */
@Component
@ConfigurationProperties(  prefix = "manInfo" )
public class ManInfoProperties {
    private String age;
    private String name;

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

在GetManInfo里 使用 @Autowired

package com.alun;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

/**
 * Created by Administrator on 2017/5/28.
 */
@RestController
public class GetManInfo {

    @Autowired
    private ManInfoProperties manInfoProperties;

    @RequestMapping(value = "/getManInfo",method= RequestMethod.GET)
    public  String getManInfo(){
        return manInfoProperties.getAge();
    }
}

四、多環(huán)境配置

多環(huán)境配置

如上圖,創(chuàng)建application-dev.yml(測(cè)試環(huán)境)和application-prod.yml(生產(chǎn))環(huán)境

application-dev.yml

server:
  port: 8080

manInfo:
    age: 18
    name: jason

application-prod.yml

server:
  port: 8081

manInfo:
    age: 18
    name: alun

而原有的application.yml則改成這樣:

spring:
  profiles:
    active: prod

spring.profiles.active: 配置文件名(比如這里是 prod或者dev)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容