Spring2.0-applicationContext.xml中使用el運算式給實體類屬性賦值被當成字串-遁地龍捲風,遁地龍捲風

來源:互聯網
上載者:User

Spring2.0-applicationContext.xml中使用el運算式給實體類屬性賦值被當成字串-遁地龍捲風,遁地龍捲風
(-1)寫在前面

這兩天讀《javaweb開發王者歸來》,學到Spring的PropertyPlaceholderConfigurer時出現一個問題,我已${jdbc.name}的形式賦值給bean中的屬性,用main方法測試後,輸出屬性的值仍然是${jdbc.name}。

(0)解決問題之路

a.我先想到是不是打錯了,於是和書上仔細的對照了一下,發現書上說的是PropertyOverrideConfigurer,但實際上設定檔中寫的是PropertyPlaceholderConfigurer,換來換去幾次沒用。

b.問了老師,在老師回去看資料的一瞬間突然有了靈感,我百度了一下,覺得找到瞭解決方案。

c.我想是不是沒匯入jar包、spring版本低,導致el運算式無法解析,一開始還一個個判定,後來把能匯入的都導了還是不行,

d.不斷的換描述方式去百度我的問題,晚上有人要走了,提前一起吃一頓飯,吃晚飯去打lol,又百度了一會沒有找到,於是在博問、問問上提問,到現在也沒收到回複,英雄聯盟輸了一晚上,中途還斷電了。

c.早上的時候想是不是main方法測試的原因,把項目部署到tomcat,在index.jsp中使用還是那樣,於是乎我想到了是不是使用方式不對呢,之前也想到過PropertyPlaceholderConfigurer的bean是怎麼和使用${jdbc.name}的bean關聯到一起的,於是開始百度PropertyPlaceholderConfigurer的使用方法,間接的找到瞭解決方案。

(1)具體解決方案

其實我覺得這個問題碰到的人真不多…,可能都是第一次學spring就讀了這本書的人吧..,下面是其中一種方式

設定檔

<bean  class="service.IDaoImp" id="iDaoImp" >

      <property name="name" value="${jdbc.name}"></property>

</bean>

<bean id="property" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  

   <property name="location">    

      <value>classpath:jdbc.properties</value>  

   </property>  

  </bean>

main方法

XmlBeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));

PropertyPlaceholderConfigurer propertyPostProcessor = (PropertyPlaceholderConfigurer)beanFactory.getBean("property");

propertyPostProcessor.postProcessBeanFactory(beanFactory);          

   IDaoImp  imp = (IDaoImp)beanFactory.getBean("iDaoImp");

  System.out.println(imp.getName());

IDaoImp

public class IDaoImp

{

      private String name;

 

      public String getName() {

           return name;

      }

 

      public void setName(String name) {

           this.name = name;

      }

     

}

jdbc.properties

jdbc.name=\u738B\u65ED

jdbc.age=21

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.