国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
javabean屬性名規(guī)范問題

Spring框架,作為Java開源框架中的佼佼者,我們經常會利用他的IOC(Inverser of Control)容器和AOP(Aspect Oriented Programming)面向切面的編程來解決我們繁雜的業(yè)務層管理。

      在使用Spring所提供的各項豐富而神奇的功能之前,我們必須在Spring IOC容器中裝配好Bean,并建立Bean和Bean之間的關聯(lián)關系。一般情況下,在配制bean時,需要為其指定一個id屬性作為Bean的名稱,在配置文件或程序中提供標識。id在IOC容器中必須是唯一的。呵呵我就犯過這樣的錯誤,找了老半天,汗顏啊^^。在Spring配置屬性時候發(fā)現(xiàn)的小問題,呵呵的確是有夠小的!

        Spring配制文件 元素所指定的屬性名和Bean實現(xiàn)類的Setter方法滿足Sun公司的JavaBean的屬性名規(guī)范,想必大家都清楚。我就不必廢話了。xxx的屬性名對應setXxx()的方法。

        一般情況下。Java的屬性變量名都已小寫字母開頭,如:userName,showMessage等,但也存在著特殊情況,考慮到一些特定的有意思的英文縮略詞如(USA,XML等),JavaBean也允許大寫字母起頭的屬性變量名,不過必須滿足“變量的前兩個字母要么全部大寫,要么全部小寫”的要求,如:IDCode、ICCard、idCode等屬性變量名是合法的,而iC、iCcard、iDCode等屬性變量名是非法的。正是由于這個原因造成了下面這種情況:

下面我們來做個測試看看,在Spring容器中配置一個類,為其注入屬性,get/set方法為eclipse自動生成

       public class Test {
              //注意這是個非法的變量名
              
               private String iDcode;

               public String getIDcode() {
                    return iDcode;
               }

               public void setIDcode(String dcode) {
                    iDcode = dcode;
               }
                //測試

               public static void main(String[] args) {
                       ApplicationContext ctx = new FileSystemXmlApplicationContext          ("classpath:applicationContext.xml");
                        Test t = (Test) ctx.getBean("test");
                        System.out.println(t.getIDcode());
                }

       }

          這是Spring配置文件中的配置
         
           <beans>
                 <bean id="test" class="com.test.Test">
                       <property name="iDCode" value="123"></property>
                 </bean>
          </beans>
           讓我們來運行下看看會發(fā)生什么情況,控制臺打印出這么一句話:          
           Invalid property 'iDcode' of bean class [com.test.Test]: Bean property 'iDcode' is not writable or has an invalid setter method: Does the parameter type of the setter match the return type of the getter?

            Spring給出了啟動失敗的錯誤原因,但是錯誤信息具有很強的誤導性,因為他抱怨Test中沒有提供對于iDocode的setter方法,但事實上我們提供了setIDcode()方法。那到底是怎么會事情呢?看看Spring的配置文件吧,它指定的就是我們所說的非法的屬性名,而這個非法的屬性名永遠不可能有對應的Settter方法,因此錯誤就產生了。

         下面我們改寫配置文件為(粗體的地方為改變之處):
          <beans>
                 <bean id="test" class="com.test.Test">
                       <property name="IDCode" value="123"></property>
                 </bean>
          </beans>

           而對于Test的屬性iDcode可以不用修改,再運行發(fā)現(xiàn)沒有報錯了。OK,現(xiàn)在我們知道了。Spring的配置文件屬性名只對應于Bean類的get/setXxx()方法。針對于大寫字母開頭的變量名總顯得比較另類,其實象"QQ,MSN"之類的專業(yè)術語一律調整為小寫字母已保證命名的統(tǒng)一,也就可以減少出錯的幾率了。OK今天就寫到這里

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
和喜歡Spring的軟件工程師談談Spring基于注解的配置
Spring XML配置十二個最佳實踐
spring機制
【第三章】 DI 之 3.1 DI的配置使用 ——跟我學spring3
Spring基礎知識匯總
Spring中XML配置文件的十二個最佳方法(下)
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服