1. 程式人生 > >spring 中如何讀取properties的中屬性資訊

spring 中如何讀取properties的中屬性資訊

1.spring 中提供了一個可以獲取properties檔案屬性的類。PropertyPlaceholderConfigurer類

下面的一個例項是通過繼承該類來獲取檔案的屬性值。

1.宣告一個類:CustomizedPropertyConfigurer

    private static Map<String, Object> ctxPropertiesMap;

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

        super.processProperties(beanFactory, props);
        // load properties to ctxPropertiesMap
ctxPropertiesMap = new HashMap<String, Object>(); for (Object key : props.keySet()) { String keyStr = key.toString(); String value = props.getProperty(keyStr); ctxPropertiesMap.put(keyStr, value); } } // static method for accessing context properties
public static Object getContextProperty(String name) { return ctxPropertiesMap.get(name); }

getContextProperty(String name)可以直接通過properties中的屬性鍵值就可以獲取值。

宣告一個監聽器:在容器初始化的時候獲取屬性檔案的值,放置到context中。

public class ContextCommonDataListener implements ServletContextListener {

    private
ServletContext context = null; public ContextCommonDataListener() { } @Override public void contextInitialized(ServletContextEvent event) { this.context = event.getServletContext(); String basePath = Toolkits.getServerBasePath(); context.setAttribute("basePath", basePath); log.info("ContextCommonDataListener,獲取伺服器basepath:" + basePath); String footerhtml = (String) CustomizedPropertyConfigurer.getContextProperty("footer.html"); context.setAttribute("footer", footerhtml); } @Override public void contextDestroyed(ServletContextEvent event) { this.context = null; } }

最後直接在頁面上使用ER表示式就可以獲取該屬性檔案的內容。