2016-10-31 1 views
0

내 @RestController에서 application.yml에 저장된 base_url을 검색하려고합니다. 그러나 아래에 인쇄 된 코드를 사용하면 항상 null이 반환됩니다. 누군가가 @Value ("$ {base_url}")가 항상 null을 반환하는 이유를 알려주십시오. 미리 감사드립니다.스프링 부트 - @Value를 사용하여 application.yml 변수 값을 가져 오지 못함

나머지 컨트롤러 :

@RestController 
public class AccountController { 

    @Value("${company.department.base_url}") 
    static String base_url; 

    @RequestMapping(method = RequestMethod.GET, value = "/getAccount") 
    public ResponseEntity<Object> getAccount() { 
     //getAccountCode 
    } 
} 

application.yml : 당신은 정적 필드를 사용할 수 없습니다

@SpringBootApplication 
public class TestApplication { 

    public static void main(String[] args) { 
     SpringApplication.run(TestApplication.class, args); 
    } 
} 

답변

0

내가 @Value을 생각하지 않는 정적 필드에 사용할 수 있습니다. 한 가지 해결 방법은 정적이 아닌 setter 기반 주입을 사용하여이를 설정하는 것입니다.

@RestController 
public class AccountController { 


    static String base_url; 

    @Value("${company.department.base_url}") 
    public void setBaseUrl(String baseUrl){ 
     this.base_url = baseUrl 
    } 
} 

참조 : https://www.mkyong.com/spring/spring-inject-a-value-into-static-variables/

관련 문제