使用spring 的註解 @value使用方法

瓜瓜東西發表於2015-01-23

有三種,都沒測試

1 中#################

在spring 3.0中,可以通過使用@value,對一些如xxx.properties檔案 
中的檔案,進行鍵值對的注入,例子如下: 

1 首先在applicationContext.xml中加入: 
   <beans xmlns:util="http://www.springframework.org/schema/util"  
    xsi:schemaLocation="http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd">  
</beans>  
  
   的名稱空間,然後 


<util:properties id="settings" location="WEB-INF/classes/META-INF/spring/test.properties" />  

3 建立test.properties 
   abc=123 


import org.springframework.beans.factory.annotation.Value;   
import org.springframework.stereotype.Controller;   
import org.springframework.web.bind.annotation.RequestMapping;   
  
@RequestMapping("/admin/images")   
@Controller   
public class ImageAdminController {   
  
    private String imageDir;   
           @Value("#{settings['test.abc']}")   
    public void setImageDir(String val) {   
        this.imageDir = val;   
    }   
  

}  
這樣就將test.abc的值注入了imageDir中了

2 中##########################

<context:property-placeholder location="classpath*:sysconfig.properties"/>;

3 中 ###############直接用類

public class abcextends PropertyPlaceholderConfigurer {
    
    private static HashMap<String, String> ctxPropertiesMap;
    
    @Override
    protected void processProperties(
        ConfigurableListableBeanFactory beanFactory, Properties props)
        throws BeansException {
        
        super.processProperties(beanFactory, props);
        ctxPropertiesMap = new HashMap<String, String>();
        for (Object key : props.keySet()) {
            String keyStr = key.toString();
            String value = props.getProperty(keyStr);
            ctxPropertiesMap.put(keyStr, value);
        }
    }
    
    public static String getProperty(String name) {
        return ctxPropertiesMap.get(name);
    }
    
    public static boolean getPropertyMapKey(String key) {
        if (ctxPropertiesMap.containsKey(key)) {
            return true;
        }
        return false;
    }
    
    public static void writePropertyByKey(String key, String value) {
        ctxPropertiesMap.put(key, value);
    }
}



<bean class="sdewwwww">   
   <property name="locations">
       <list>
          <value>classpath:FrontService.properties</value>
          <value>classpath:ResponseCode.properties</value> 
       </list>  
   </property>
</bean>


相關文章