1. 程式人生 > >Spring 進階(3) 屬性佔位符介面卡

Spring 進階(3) 屬性佔位符介面卡

  1. 屬性佔位符介面卡是在配置檔案中配置一個屬性佔位符介面卡的bean A,然後bean A載入配置檔案,然後其他bean就可以通過佔位符的方式去使用屬性佔位符介面卡已經載入好的值。
  2. 這種辦法可以當相應的資訊需要修改的時候不用改beans.xml,直接在屬性檔案裡邊改就可以了。
  3. 程式碼這裡就不真的連結資料庫了,其實連結也很簡單,是把~
    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;
        }
    
    
    
    }
    
    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。實現類是PropertyPlaceholderConfigurer-->
        <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            <property name="locations">
                <list>
                    <value>dbconn.properties</value>
                </list>
            </property>
        </bean>
    
    <!--通過佔位符的方式獲得相應的值,注意名字要寫對-->
        <bean id="dataSource" class="DbPackage.Db"
              p:driver="${driver}"
              p:url="${url}"
              p:user="${user}"
              p:pass="${driver}"
    
        />
    
    
    </beans>
    driver =  com.microsoft.sqlserver.jdbc.SQLServerDriver
    url = jdbc:sqlserver://localhost:1433; DatabaseName=homework_Submit_System
    user =  root
    pass = 123456

    這是我看李剛編著的《輕量級javaEE企業應用實戰(第五版)-Struts2+Spring5+Hibernate5/JAP2》後總結出來的。