static 변수에서 @value 사용(properties 값을 static으로 선언)

2019. 12. 18. 21:173_개발/3_1_JAVA

 

방금 썼던 글과 비슷하지만

@value를 static으로 선언하면 사용이 불가능하다.

 

아무리 사용해도 null값이 나올 것이다.

이럴 경우 사용하는 꼼수(?)이다.

 

자주 사용하지 않는게 좋지만 꼭 써야하겠다면 이런 꼼수를 쓰는 것도 나쁘지 않다.

@Component
public class 클래스명 {
 public static String 변수;		/* 변수 주석 */
 
 
@Value("#{xml에서 설정한 properties 명['properties 파일 내에 선언해 준 이름']}")
	public void set변수(String 변수) {
		클래스명.변수 = 변수;
	}
}

ex)

@Component
public class config {
 public static String url;		/* url */
 
 
 @Value("#{conf['url']}")
	public void setUrl(String url) {
		config.url = url;
	}
}

 

이렇게 선언한 다음 타 java 파일 내에서는 

config.url
(클래스명.static 변수명)

호출해서 사용하면 된다.