Spring 進階(4) 重寫佔位配置器
阿新 • • 發佈:2018-12-10
- 學這個很多東西看書模模糊糊,要實際操作立馬就懂了。
- 這個重寫佔位配置器,就是在比佔位配置器的功能更加強大,它可以實現無需在bean下顯式地配置peoperty資訊,而是由重寫展位配置器自動填充,它可以綜合配置檔案和屬性檔案的資訊,當這兩者的發生衝突的時候,屬性檔案(properties檔案)會覆蓋配置檔案的資訊。
- 要特別提醒地是,要實現重寫資源配置器自動填充功能,需要在屬性檔案中把地屬性格式寫成醬紫,不然重寫佔位配置器會找不到的,畢竟它只是一個重寫佔位配置器
配置檔案中某個bean的id.屬性名字 = 具體值
- 這是程式碼,少俠笑納
package TestPackage; import DbPackage.Db; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; //測試類 public class SpringTest { public static void main(String []args){ ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml"); Db db = applicationContext.getBean("dataSource", Db.class); System.out.println(db.getDriver()); } }
<?xml version="1.0" encoding="GBK"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"> <!--就是這裡,重寫屬性配置器無需指定id,實現類為PropertyOverrideConfigurer,然後指定好屬性檔案--> <bean class="org.springframework.beans.factory.config.PropertyOverrideConfigurer"> <property name="locations"> <list> <value>dbconn.properties</value> </list> </property> </bean> <!--然後,這裡試圖使用配置檔案定義dataSource的一個屬性值,但這是會被重寫佔位配置器給覆蓋的。--> <bean id="dataSource" class="DbPackage.Db"> <property name="driver" value="okokok" /> </bean> </beans>
#在屬性檔案中,屬性的名字要寫對。 dataSource.driver = com.microsoft.sqlserver.jdbc.SQLServerDriver dataSource.url = jdbc:sqlserver://localhost:1433; DatabaseName=homework_Submit_System dataSource.user = root dataSource.pass = 123456
package DbPackage; //這是普通bean public class Db { private String driver; private String url; private String user; private String pass; public void setDriver(String driver) { this.driver = driver; } public String getDriver() { return driver; } public String getUrl() { return url; } public String getUser() { return user; } public String getPass() { return pass; } public void setUrl(String url) { this.url = url; } public void setUser(String user) { this.user = user; } public void setPass(String pass) { this.pass = pass; } }
這是我看李剛編著的《輕量級javaEE企業應用實戰(第五版)-Struts2+Spring5+Hibernate5/JAP2》後總結出來的。