springbootyml 정의 속성, 아래 ${} 인용 설명

예를 들어 yml에서 도메인 이름 속성을 사용자 정의합니다.
mytest:
domainName: https://www.jb51.net
위에서 정의한 후에 이 프로필에서 도메인 이름을 ${}로 대체할 수 있습니다
defaultHead: ${mytest.domainName}/head.jpeg
추가 정보: Java 읽기.yaml 프로필(@Value 사용("${prefix_name}")
lombok 의존 추가
[주] lombok은 선택할 수 있지만 만약에 yaml이 lombok과 함께 사용하면 매우 편리하고 코드도 간결할 것이다
compileOnly('org.projectlombok:lombok:1.18.4')
IDE는 Lombok을 설치합니다.
IDEA의 경우 Enable annotation procession: Preferences -> Build, Execution, Deployment -> Enable annotation procession 을 선택해야 합니다.

application.yml
spring:
 datasource:
  driver-class-name: com.mysql.cj.jdbc.Driver
  url: jdbc:mysql://172.16.126.135:3306/emall?characterEncoding=utf-8
  username: watson.wei
  password: Password123#
새 YamlUtil 클래스
[주]importorg를 사용합니다.springframework.beans.factory.annotation.Value; 의 @Value("${prefix_name}") 메모
[주] @Value("${prefix_name}") 주석의 변수는 static 또는final일 수 없습니다. 그렇지 않으면 yamlUtil이 가져온 값은null입니다.

import lombok.Getter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
 
@Component
@Getter
public class YamlUtil {
  // 【 】@Value("${prefix_name}") static final, yamlUtil null
  @Value("${spring.datasource.url}")
  private String datasourceUrl;
 
  @Value("${spring.datasource.username}")
  private String datasourceUsername;
 
  @Value("${spring.datasource.password}")
  private String datasourcePassword;
}
yml 파일 값 가져오기
[주] new YamlUtil()을 사용하여 객체를 만들 수 없습니다. 그렇지 않으면 yamlUtil이 가져온 값이null입니다.

import com.demo.shiro.util.YamlUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
@Service
@Slf4j
public class YamlTest {
  // 【 】 new YamlUtil() , yamlUtil null
  @Autowired
  private YamlUtil yamlUtil;
 
  public void test() {
    log.info(yamlUtil.getDatasourcePassword());
  }
}
이상의 이springbootyml은 속성을 정의합니다. 다음 글에서 ${} 인용설명은 바로 편집자가 여러분에게 공유한 모든 내용입니다. 여러분에게 참고가 되고 저희를 많이 사랑해 주시기 바랍니다.

좋은 웹페이지 즐겨찾기