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;
    }
}

 

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