SpringBoot 는 properties 나 application.yml 프로필 의 데 이 터 를 읽 습 니 다.

응용 프로그램 파일 읽 기
application.yml 또는 properties 파일 에 추가:

user.address=china
user.company=demo
user.name=    
1.@Value 주 해 를 사용 하여 읽 기
직접 코드 는 다음 과 같 습 니 다:

package im.homeapi.controller;
 
import org.springframework.beans.factory.annotation.Value;
import org.omg.CORBA.PUBLIC_MEMBER;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@RestController
@RequestMapping(value="/api")
public class HomeController {
 
  @Value("${user.address}")
  private String address;
 
  @Value("${user.company}")
  private String company;
 
  @Value("${user.name}")
  private String name;
 
  //value       ,method       
  @RequestMapping(value = "/home",method = RequestMethod.GET)
  public String Home()
  {
    return "Hello Word";
  }
  @RequestMapping(value = "/getConfig")
  public String getConfig() {
    return "        :" +
        " name=" + name +
        " address=" + address +
        " , company=" + company;
  } 
}
단독 설정 클래스 에서 읽 기:

package im.homeapi.entity; 
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class UserConfig {
 
  @Value("${user.address}")
  private String address;
 
  @Value("${user.company}")
  private String company;
 
  public String getAddress() {
    return address;
  }
 
  public void setAddress(String address) {
    this.address = address;
  }
 
  public String getCompany() {
    return company;
  }
 
  public void setCompany(String company) {
    this.company = company;
  }
 
  public String getName() {
    return name;
  }
 
  public void setName(String name) {
    this.name = name;
  }
 
  @Value("${user.name}")
  private String name;
}
다음 호출:

 @Autowired
  private UserConfig userConfig;
  //     
  @RequestMapping(value = "/getConfigEntity")
  public String getConfigEntity() {
    return "        :" +
        " name=" + userConfig.getName() +
        " address=" + userConfig.getAddress() +
        " , company=" + userConfig.getCompany();
 
  }
실행 결 과 는 다음 과 같 습 니 다.

2.@ConfigurationProperties 주석 읽 기 방식 사용
코드 는 다음 과 같 습 니 다:

package im.homeapi.entity;
 
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
 
@Component
@ConfigurationProperties(prefix = "user")
public class UserConfig1 {
  private String address;
  private String company;
  private String name;
 
  public String getAddress() {
    return address;
  }
 
  public void setAddress(String address) {
    this.address = address;
  }
 
  public String getCompany() {
    return company;
  }
 
  public void setCompany(String company) {
    this.company = company;
  }
 
  public String getName() {
    return name;
  }
 
  public void setName(String name) {
    this.name = name;
  }
}
호출:

package im.homeapi.controller;
 
import im.homeapi.entity.UserConfig;
import im.homeapi.entity.UserConfig1;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.omg.CORBA.PUBLIC_MEMBER;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@RestController
@RequestMapping(value="/api")
public class ConfigController {
  @Autowired
  private UserConfig1 userConfig;
  //      ConfigurationProperties      
  @RequestMapping(value = "/getConfigEntity1")
  public String getConfigEntity() {
    return "        :" +
        " name=" + userConfig.getName() +
        " address=" + userConfig.getAddress() +
        " , company=" + userConfig.getCompany();
 
  }
}
실행 결과:

3.지정 한 파일 읽 기
3.1,@PropertySource+@Value 주석 읽 기 방식
resources 에서 config/db-config.properties 새 설정 
메모:@PropertySource 는 yml 파일 읽 기 를 지원 하지 않 습 니 다.

db.username=root
db.password=123456
그림:

코드:

package im.homeapi.entity;
 
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
 
@Component
@PropertySource(value = { "config/db-config.properties" })
public class DBConfig {
 
  @Value("${db.username}")
  private String username;
 
  @Value("${db.password}")
  private String password;
 
  public String getUsername() {
    return username;
  }
 
  public void setUsername(String username) {
    this.username = username;
  }
 
  public String getPassword() {
    return password;
  }
 
  public void setPassword(String password) {
    this.password = password;
  }
}
호출 코드:

package im.homeapi.controller;
import im.homeapi.entity.DBConfig;
import im.homeapi.entity.UserConfig;
import im.homeapi.entity.UserConfig1;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.omg.CORBA.PUBLIC_MEMBER;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@RestController
@RequestMapping(value="/api")
public class DbController {
  @Autowired
  private DBConfig dbConfig;
  //      PropertySource+@Value      
  @RequestMapping(value = "/getConfigdb")
  public String getConfigdb() {
    return "        :" +
        " name=" + dbConfig.getUsername() +
        " , password=" + dbConfig.getPassword();
  }
}
실행 결과:

3.2,@PropertySource+@ConfigurationProperties 주석 읽 기 방식
코드:

package im.homeapi.entity;
 
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
 
@Component
@ConfigurationProperties(prefix = "db")
@PropertySource(value = { "config/db-config.properties" })
public class DBconfig1 {
  private String username;
  private String password;
 
  public String getUsername() {
    return username;
  }
 
  public void setUsername(String username) {
    this.username = username;
  }
 
  public String getPassword() {
    return password;
  }
 
  public void setPassword(String password) {
    this.password = password;
  }
}
호출 코드:

 @Autowired
  private DBconfig1 dbConfig1;
  //      @PropertySource+@ConfigurationProperties      
  @RequestMapping(value = "/getConfigdb1")
  public String getConfigdb1() {
    return "        :" +
        " name=" + dbConfig1.getUsername() +
        " , password=" + dbConfig1.getPassword();
  }
실행 결과:

@Component 는 이 종 류 를 Bean 으로 표시 합 니 다.
@ConfigurationProperties(prefix="db")는 바 인 딩 속성 에 사용 되 며,prefix 는 바 인 딩 된 속성의 접 두 사 를 표시 합 니 다.
@PropertySource(value="config/db-config.properties")는 설정 파일 경 로 를 표시 합 니 다.
4.Environment 로 읽 기
코드:

 @Autowired
  private Environment environment;
  //      CEnvironment    
  @RequestMapping(value = "/getConfigenv")
  public String getConfigenv() {
    return "        :" +
        " name=" + environment.getProperty("user.name") +
        " address=" + environment.getProperty("user.address") +
        " , company=" + environment.getProperty("user.company");
   }
실행 결과:

총결산
상기 예 시 를 보면 Spring Boot 는@PropertySource,@Value,@Environment,@ConfigurationProperties 를 통 해 변 수 를 연결 할 수 있 습 니 다.
SpringBoot 에서 properties 나 application.yml 프로필 의 데 이 터 를 읽 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 SpringBoot 에서 설정 데이터 내용 을 읽 는 것 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 을 바 랍 니 다!

좋은 웹페이지 즐겨찾기