在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java  網(wǎng)絡(luò)安全/ spring中這種使用方式classpath如何表示根目錄

spring中這種使用方式classpath如何表示根目錄

1.問(wèn)題描述
項(xiàng)目使用maven構(gòu)建,配置文件都放在src/main/resources下。
由于項(xiàng)目開(kāi)發(fā)中有人頻繁改動(dòng)web.xml配置,所以項(xiàng)目經(jīng)理使用了變量(sso.path)來(lái)指定外部配置文件,每人都各自使用本地配置文件。
但問(wèn)題來(lái)了,當(dāng)我想再切換到src/main/resources目錄下的配置時(shí),不知道該怎么表示(當(dāng)然可以全部注釋起來(lái),但改的地方較多)。
如果存在子目錄,倒是很好表示,如classpath:/spring,但我的配置文件都在根目錄下,使用classpath: classpath:/ ,classpath://,亂七八糟的都試過(guò),貌似都不起作用。
求指教!多謝!

2.代碼如下
web.xml中的配置

    <context-param>
        <!-- 變量 -->
        <param-name>sso.path</param-name>
        <!-- 外部配置文件目錄?!締?wèn)題】如果要表示src/main/resouces下根目錄該怎么表示???? -->
        <param-value>file:f:/config</param-value>
    </context-param>
    
    <listener>
        <listener-class>cn.xx.xx.api.sso.listener.ConfigContextListener</listener-class>
    </listener>

ConfigContextListener實(shí)現(xiàn)

public class ConfigContextListener implements ServletContextListener{
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        String path = sce.getServletContext().getInitParameter("sso.path");
        //設(shè)置系統(tǒng)全局變量,以便全局可用
        System.setProperty("sso.path", path);    
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        
    }
}

使用:例如,spring-redis.xml中使用(還有很多配置文件都用到了該變量)

    <context:property-placeholder location="${sso.path}/spring/redis.properties"
        ignore-unresolvable="true" />
回答
編輯回答
尐潴豬

classpath:spring-*.xml
通過(guò)通配符來(lái)匹配

2018年2月19日 16:09