2014-04-16 3 views
0

Java Classess의 파일에서 액세스 속성을 사용하려면 아래의 스프링 구성을 사용해야합니다. 다음과 같은 JavaEE 어플 프로젝트를위한 여러 가지 방법이 있습니다 :Java SE 프로젝트에서 PropertyPlaceholderConfigurer를 사용하는 방법

나는 자바 SE 프로젝트 때문에 시도 PropertyPlaceholderConfigurer와 클래스의 방법이지만 상기 propertiesMap가 null 있도록 applicationProperties 콩 PropertyPlaceholderConfigurer와 클래스에서 보이지 않는이 시간에 사용할 수 있어요
<context:component-scan base-package="com.service.pack" /> 
    <context:property-placeholder properties-ref="appProperties"/> 

.

내가 뭘 잘못하고 있니? JavaEE 어플 같은 클래스 파일에서 속성을 accecing의 간단한 방법은 당신이 뭘 하려는지 모르겠지만 위의 샘플 프로젝트에서, PropertiesUtilPropertyPlaceholderConfigurer에서 확장하지만 XML 구성이 PropertyPlaceholderConfigurer을 의미

<bean id="applicationProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="location" value="classpath:app.properties"/> 
</bean> 



@Component 
public class PropertiesUtil extends PropertyPlaceholderConfigurer { 
    private static Map<String, String> propertiesMap; 

    @Override 
    protected void processProperties(ConfigurableListableBeanFactory beanFactory, 
      Properties props) throws BeansException { 
     super.processProperties(beanFactory, props); 

     propertiesMap = new HashMap<String, String>(); 
     for (Object key : props.keySet()) { 
      String keyStr = key.toString(); 
      propertiesMap.put(keyStr, parseStringValue(props.getProperty(keyStr), 
       props, new HashSet())); 
     } 
    } 

    public static String getProperty(String name) { 
     return (String) propertiesMap.get(name); 
    } 
} 
+0

Jave SE 프로젝트에서 왜 다른가 ... 차이점은 없습니다 ... –

+0

processProperties (메소드가 호출되면 Properties 소문자 매개 변수가 null 일 때) 이유는 무엇입니까? –

답변

0

프로젝트가 귀하의 하위 클래스가 아닙니다. 그래서 그게 전부라면 클래스도 호출되지 않습니다.

나는 다음과 같은 설정으로 그 로컬 시도하고 일했다 :

<bean id="applicationProperties" class="com.foo.yourpackage.PropertiesUtil"> 
    <property name="location" value="classpath:app.properties"/> 
</bean> 

을 지금, 나는 당신이 당신의 code.The Environment 추상화의 속성에 액세스하는 데 필요한 모든 것을 한 시도하고 이해 점검 자세한 내용은 this blog postjavadoc of Environment을 참조하십시오.