1. 程式人生 > >Spring 進階(4) 重寫佔位配置器

Spring 進階(4) 重寫佔位配置器

  1. 學這個很多東西看書模模糊糊,要實際操作立馬就懂了。
  2. 這個重寫佔位配置器,就是在比佔位配置器的功能更加強大,它可以實現無需在bean下顯式地配置peoperty資訊,而是由重寫展位配置器自動填充,它可以綜合配置檔案和屬性檔案的資訊,當這兩者的發生衝突的時候,屬性檔案(properties檔案)會覆蓋配置檔案的資訊。
  3. 要特別提醒地是,要實現重寫資源配置器自動填充功能,需要在屬性檔案中把地屬性格式寫成醬紫,不然重寫佔位配置器會找不到的,畢竟它只是一個重寫佔位配置器
    配置檔案中某個bean的id.屬性名字  = 具體值

     

  4. 這是程式碼,少俠笑納
    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》後總結出來的。