Spring中的xml中使用<context:property-placeholderlocation>標籤導入配置文件時,想要導入多個properties配置文件,以下:java
<context:property-placeholderlocation="classpath:a.properties " /> <context:property-placeholderlocation="classpath:b.properties " />
結果發現不行,第二個配置文件始終讀取不到,後來發現<context:property-placeholder>
標籤在Spring配置文件中只能存在一份!!!Spring容器是採用反射掃描的發現機制,經過標籤的命名空間實例化實例,當Spring探測到容器中有個org.springframework.beans.factory.config.PropertyPlaceholderCVonfigurer的Bean就會中止對剩餘PropertyPlaceholderConfigurer的掃描,即只能存在一個實例。spring
<context:property-placeholder location="" file-encoding="" ignore-resource-not-found="" ignore-unresolvable="" properties-ref="" local-override="" system-properties-mode="" order="" />
那若是有多個配置文件怎麼辦呢?那就多個文件之間以「,」分隔,以下:ide
<context:property-placeholderlocation="classpath:a.properties,classpath:b.properties" />
值得注意的是:多個配置文件將依次加載,若是後一個文件中有和前面某一個文件中屬性名是相同的,最終取的值是後加載的值。spa
javaconfig的加載在xml文件以前,故在javaconfig配置的會被xml中配置的實例覆蓋code