日期:2014-05-19  浏览次数:20807 次

Spring中对set方法的命名的限制
如果属性名称为name,set方法是否一定要是setName
类推:属性名称为id,set方法是否一定要是setId

请问Spring对bean类是不是要求这种命名规范

还是说随便命名都可以

------解决方案--------------------
6楼说的很对,对于spring的依赖注入和你的属性名称没一点关系它是根据你的写方法也就是set方法的名称
例如你类中有个属性private String name;
 public void setMyName(String name) {
this.name = name;
}

可以看到属性和它的写方法并不是按照常规那样去定义,如果你spring配置文件中有id名称为myName的话它会通过反射调用setMyName方法将bean注入进去,这时候实际上你name属性就有值了,可以看出来spring的注入和你的属性名称没任何关系它和你的写方法的名称有关系。
但是通常情况我们都会以属性的名称去定义生成读和写方法,很少会看到读和写方法与属性名称不一致的吧。也不建议那样做啊,
------解决方案--------------------
LZ我之前也很好奇这个命名规则问题,今天去试了一下(spring3.0),如果定义String类型的username
配置了XML如下:
XML code

<property name="username" value="abcde"></property>