你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Web开发
javaBean属性的命名规范
 
Sping配置文件中<property>元素所指定的属性名和Bean实现类的Setter方法满足Sun javaBean的属性命名规范:xxx的属性对应setXxx()方法.一般情况下,java的属性变量都以小写字母起头,如maxSpeed.brand等.但也存在特殊的情况,考虑到一些特定意义的大写英文缩略词(如XML.USA等),javaBean也允许大写字母起头的属性变量名,不过必须满足"变量的前两个字母要么全部大写,要么全部小写"的要求,如brand.IDCode.IC.ICCard等属性变量名是合法的,而iC.iCcard.iDCode等属性变量名则是非法的.这个并不光为人知的JavaBean规范条款引发众多让人摸不着头的配置问题.下面是一个"违反"了JavaBean属性名规范的类:
public class Foo{
private String iDCode;
public void setIDCode(String iDCode){
this.iDCode=iDcode;}
}
在Spring配置文件中,我们可能会想当然的为Foo提供以下的配置:
<bean id="foo" class="com.lxm.attr.Foo">
<property name="iDCode" value="0000"/>
</bean>
当我们试图启动Sping容器时,将得到启动失败的结果,控制台输出以下的错误信息"
Error setting property values;nested exception is org.springframework.
beans.NotWribablePropertyExcetion:Invalid property 'iDCode' of bean class[com.lxm.attr.Foo]:Bean property 'iDCode' is not wribable or has an invalid Setter method. Did you mean 'IDCode'? Caused by:org.springframework.beans.NotWribablePropertyException:Invalid property 'iDCode' of bean class
Spring给出了启动失败的错误原因,但错误信息具有很强的误导性,因为他抱怨Foo中没有提供对应于iDCode的Setter方法,但事实上Foo 已提供了 setIDCode()方法.其实真正的错误根源是我们在Spring配置文件中指定了一个非法的属性名iDcode,这个非法的属性名永远不可能有对应的Setter方法,因此错误就产生了.纠正的办法是将配置文件中的属性名该为IDCode:
<bean id="foo" class="com.lxm.attr.Foo">
<property name="IDCode" value="0000"/>
</bean>
  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089