mac-IDEA-SPringBoot(4)-@Value-@ConfigurationProperties

在.yml文件中有些變量或者實例,你想在controller中訪問,可以用@Value@ConfigurationProperties進行訪問。
1.添加執行器
2.@Value 
3.@ConfigurationProperties

 


  1.在pom.xml中添加執行器:

   https://docs.spring.io/spring-boot/docs/2.0.1.RELEASE/reference/htmlsingle/#common-application-properties

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-configuration-processor</artifactId>
	<optional>true</optional>
</dependency>

小提示:如果出現沒找到包,可以刷新一下maven依賴。
一個yml文件示例:

#對象的配置 縮進
#person:
 # age: 18
#name: zhangsan
#order: beijing

#行內對象配置
#person:{age: 18,name: zhangsan,adder: beijing}

#配置數據、集合
#city:
#  - beijing
# - tianjing
# - nanjing
#citylist: [beijing,tianjing,nanjing]

ynamesimple: zhangsan
ystudent:
   yname: tom
   yage: 18
   yaddr: beijing
  #studentlist:[{name: tom,age: 18,addr: beijing},{name: lay,age: 20,addr: nanjing}]
 #map配置
#Map:
 # key1: value1
 # key2: value2

yteacher:
   yname: jerry
   yage: 50
   yaddr: nanjing

person:
   name1: tom
   age: 19
   addr: shanghai




2.@Value
 
 適用條件:因爲要每個變量上添加這個註解,適用於訪問數據不太多的情況下。
  語法:變量上添
加 @Value("${ynamesimple}"),@Value("${ystudent.yname}")
  命名事項:yml 文件中的名字可以與controller的名字可以不一致
 

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class quickController2 {
    @Value("${ynamesimple}")
    private String namesimple; //1.變量@Value("${name}")

    @Value("${ystudent.yname}")
    private String sname;     //2.對象@Value("${s.name}")
    @Value("${ystudent.yaddr}")
    private String saddr;

    @RequestMapping("/quick2")
    @ResponseBody
    public String quick2()
    {
        return "訪問成功:"+"name:"+namesimple+",s.name="+sname+",s.addr="+saddr;
    }
}

3.@ConfigurationProperties
  適用條件:
如果有挺多的變量可以用這個註解
  語法:      類前面
@ConfigurationProperties(prefix = "person")
  命名事項:yml 文件中的名字可以與controller的名字一致
 

@Controller
@ConfigurationProperties(prefix = "person")
public class quickController3 {

    private String name;
    private String addr;
    private Integer age;

    @RequestMapping("/quick3")
    @ResponseBody
    public String quick3(){
        //獲得配置文件的信息
        return "name:"+name+", addr="+addr+", age="+age;
    }

    public String getName() {
        return name;
    }

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

    public String getAddr() {
        return addr;
    }

    public void setAddr(String addr) {
        this.addr = addr;
    }

    public Integer getAge() {
        return age;
    }

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章