2011-08-27 8 views
1

스프링에 주석이 있거나 주어진 문자열을 변환하는 java가 있습니까?문자열 값을 변경하는 주석

예를 들어, Spring에는 @Value ("some string") 주석이 있습니다. 매개 변수/인스턴스 변수에 "some string"을 할당하는 대신 해당 문자열의 변환 된 값을 지정하고 싶습니다. 문자열이 "foo"라고 가정 해 봅시다. 이 주석을 볼 때마다 반환되는 문자열은 foo가 아니라 "bar : foo"가 되길 원합니다. 필자가 원했던 것은 주석을 매개 변수 또는 인스턴스 변수에 배치하고 해당 변환이 자동으로 발생하도록하는 것입니다. 어쩌면 어쩌면 어노테이션은 클래스뿐만 아니라 클래스가 주어진 문자열에 대한 변압기 역할을하는 문자열을 취한다.

봄이나 자바에 주석이 있습니까? 그렇지 않은 경우 그런 것을 구현하는 가장 좋은 방법은 무엇입니까?

감사 로렌

+0

를 사용할 수있는 콩이 이전에 정의하면

@Value("#{T(fully.qualified.package.name.to.class).getFooString()}") public void setBar(String value){ this.bar = value; } 

:

는 정적 메서드에 사용할 수 있습니다 어떻게 아마도 요구 사항을 설명하는 의사 코드를 제공 할 수 있습니까? – home

답변

0

봄의 @Value 주석이 스프링 표현 언어를 사용하여 속성에 일정 이외의 값을 할당하는 데 유용합니다. 예를 들어, 특성 파일에서 읽은 값. 상수를 할당 한 경우 private String foo = "bar";을 사용할 수 있습니다.

그래서 일부 설정 파일이나 시스템 속성에서 원하는 값을 얻을 수 있습니다.

필드에 일부 변환 알고리즘을 적용하는 것이면 주석을 사용하는 지점을 실제로 볼 수 없습니다. 자바 메서드를 호출하면됩니다.

@Value("foo") // or some EL expression which evaluates to "foo" 
public void setBar(String value) { 
    this.bar = someStringTransformer.transform(value); 
} 

읽기 쉽고, 테스트하고 유지 관리하는 것처럼 보입니다.

1

@Value 주석 내에서 스프링 표현식 언어를 사용할 수 있습니다. 그런 다음 당신은 단순히 내가이 질문을하지 않는 @Value("#{bean.method()}") 또는 @Value("#{bean.property}")

관련 문제