Spring @ Value: Properties 프로필 읽 기

... 이 아니다 @값 방식: 리 소스 로 더 를 기반 으로 Properties 프로필 읽 기
 
다음은 Spring @ Value: Properties 프로필 읽 기
1.1 전제
테스트 속성 파일: advancevalue_inject.properties
server.name=server1,server2,server3
#spelDefault.value=notdefault
HelloWorld_=sss

테스트 클래스 AdvanceValueInject: advance 도입value_inject. properties 파일, 속성 으로 주입
@Component
@PropertySource({"classpath:com/hry/spring/configinject/advance_value_inject.properties"})
public class AdvanceValueInject {
...
}

1.2 \ # {...} 과 ${...}
${...} 사용법  {} 안에 있 는 내용 은 SpEL 표현 식 에 부합 되 어야 합 니 다. 자세 한 문법 은 나중에 새로운 글 을 열 어 소개 할 수 있 습 니 다. @ Value ("${spelDefault. value}") 를 통 해 속성 파일 에 대응 하 는 값 을 가 져 올 수 있 지만 속성 파일 에 이 속성 이 없 으 면 오류 가 발생 할 수 있 습 니 다.기본 값 을 부여 하여 이 문 제 를 해결 할 수 있 습 니 다. 예 를 들 어 @Value("${spelDefault.value:127.0.0.1}")자세 한 코드 는 다음 과 같 습 니 다.
    //         spelDefault.value,    
    //  @Value("${spelDefault.value}")
    //  private String spelDefault2;

    //   default.value   ,           
    @Value("${spelDefault.value:127.0.0.1}")
    private String spelDefault;


\ # {...} 사용법  간단 한 사용법 만 보 여 줍 니 다.
    // SpEL:     Hello World concat  
    @Value("#{'Hello World'.concat('!')}")
    private String helloWorld;

    // SpEL:       getBytes  ,    length  
    @Value("#{'Hello World'.bytes.length}")
    private String helloWorldbytes;

${...} 과 \ # {...} 을 섞 어 사용 합 니 다.  ${...} #{...} 다음 코드 실행 순서 와 같이 혼합 하여 사용 할 수 있 습 니 다. ${server. name} 을 통 해 속성 파일 에서 값 을 가 져 와 교체 한 다음 에 SpEL 표현 식 {'server 1, server 2, server 3'. split (',')} 을 실행 합 니 다.
    // SpEL:        ,  ","        , #{} ${}    (     ,       ${}   ,#{}   )
    @Value("#{'${server.name}'.split(',')}")
    private List servers;

위의 글 에서 #{} ,${} 실행 에 성공 할 수 있다 면 반대로 할 수 있 습 니까? ${} ,#{} 예 를 들 어 코드 와 같 습 니 다.
    // SpEL:        ${}   ,#{}   ,       
    @Value("${#{'HelloWorld'.concat('_')}}")
    private List servers2;

답 은 안 돼.spring 이 ${} 을 실행 하 는 것 은 시간 이 \ # {} 보다 빠 르 기 때 문 입 니 다.이 예 에서 Spring 은 속성 에서 \ # {'Hello World'. concat ('')} 을 찾 으 려 고 시도 합 니 다. 찾 을 수 있 습 니 다. 위 에서 알 고 있 는 것 을 찾 지 못 하면 오 류 를 보고 합 니 다.그래서 ${} ,#{} 불법 조작 입 니 다.
작은 매듭
  • \ # {...} SpEl 표현 식 을 실행 하고 내용 을 속성
  • 에 할당 합 니 다.
  • ${...} 외부 속성 파일 의 값 을 불 러 오 는 데 사 용 됩 니 다
  • \ # {...} 과 ${...} 을 섞 어 사용 할 수 있 지만 #{} ,${}
  • https://blog.csdn.net/hry2015/article/details/72453920

    좋은 웹페이지 즐겨찾기