2010-01-13 6 views
13

첫째로 속성 값을 삽입 할 수 : 나는어떻게 주석 구성된 스프링 MVC 3.0 컨트롤러

스프링 3.0을 사용하고 내 컨트롤러 클래스를 구성 할 때 나는 문제가있다. 컨트롤러는 .properties 파일을 사용하여 엔드 포인트 주소를 정의하고자하는 웹 서비스를 사용합니다. 내 응용 프로그램 컨텍스트 XML 파일에서

@Controller 
public class SupportController { 

    @Value("#{url.webservice}") 
    private String wsEndpoint; 

    ... 

, 내가 정의한이 :

<context:property-placeholder location="/WEB-INF/*.properties" /> 

나는 다른 접근을 시도하고, 문서를 읽어 봤는데 (. 접두사 systemProperties을 추가하는 등)하지만, 내가 존재하지 않는다는 오류 메시지가 계속 나타납니다.

필드 또는 속성 'URL' 은 'org.springframework.beans.factory.config.BeanExpressionContext'


확인 유형의 객체를 찾을 수 없습니다. 나는 그것을 알아 냈다.

이제 컨트롤러 :

@Value("#{settings['url.webservice']") 

그럼이 "도우미 콩"이 상황에 맞는 구성 :

<util:properties id="settings" 
location="/WEB-INF/supportweb.properties"></util:properties> 
+0

중복 : http://stackoverflow.com/questions/1741968/using-spring3-value-to-access-propertyplaceholderconfigurer-values – skaffman

답변

11

이도 작동합니다 :

@Value("${url.webservice}") 
private String wsEndpoint; 
2

그 내용을 확인해야합니다.

<context:property-placeholder location="/WEB-INF/*.properties" /> 

는 당신이

2

내가이 구성을 가지고있는 @Controllers의 인스턴스를 만들 경우 webmvc-config.xml에 정의하고 그것을 잘 작동한다 :

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="locations"> 
     <list> 
     <value>classpath:application.properties</value> 
     </list> 
    </property> 
</bean> 

나는이 방법으로 재산을 iniejct

@Value("${root.log.level}") 
private String prop; 

필드가 올바르게 "DEBUG"값으로 초기화됩니다.