`

Spring配置文件中id的第二个字母不能大写问题 (转)

阅读更多

Spring配置文件中id的第二个字母不能大写问题

http://xiaotian-ls.iteye.com/blog/273232

 

 

今天遇到一个问题,在spring配置文件中的id第二个字母不能大写,否则会产生异常:Bean property 'kManager' is not writable or has an invalid setter method. Did you mean 'KManager'?.为了解决问题研究了一下问题的原因:spring在autoWire的同时用到了jdk提供的java.beans.*目录下的类(等有时间好好研究一下这些类,功能很强大),通过它们能够得到bean的详细信息。其中有个类PropertyDestriptor类能够通过bean中的set/get方法找到property,不过有个小前提:property的命名要遵循第二个字母不能大写。因为java是国外开发的,它对命名遵循了英语的一个规范:大部分的单词第二个字母都是小写的,除了URL之类的单词。
        下面的java.beans.Introspector类中通过set/get方法找到property的代码(希望大家可以自己去看看java.beans.*的代码)。Open Source! I love it.

/**
     * Utility method to take a string and convert it to normal Java variable
     * name capitalization.  This normally means converting the first
     * character from upper case to lower case, but in the (unusual) special
     * case when there is more than one character and both the first and
     * second characters are upper case, we leave it alone.
     * <p>
     * Thus "FooBah" becomes "fooBah" and "X" becomes "x", but "URL" stays
     * as "URL".
     *
     * @param  name The string to be decapitalized.
     * @return  The decapitalized version of the string.
     */
    public static String decapitalize(String name) {
 if (name == null || name.length() == 0) {
     return name;
 }
 if (name.length() > 1 && Character.isUpperCase(name.charAt(1)) &&
   Character.isUpperCase(name.charAt(0))){
     return name;
 }
 char chars[] = name.toCharArray();
 chars[0] = Character.toLowerCase(chars[0]);
 return new String(chars);
    }

 

 

1 楼 harman001 2009-07-03   引用
,为什么我的id大写同样没事啊!- -!
在struts中调用无论运用手工注入还是自动注入,都是可以找到此类的.
在单元测试中,手工注入方式是可以找到此类的.
在单元测试中,自动注入方式是找不到此类的
分享到:
评论

相关推荐

    Spring中Bean的命名方式代码详解

    在 Spring 中,Bean 的命名规则遵循 XML 命名规范,由字母、数字、下划线组成,驼峰式,首个单词字母小写,从第二个单词开始首字母大写。这种命名规则可以确保 Bean 的名称是唯一的和易读的。 二、配置全限定类名 ...

    公司内部MVC开发规范(SSH三层框架整合项目开发)

    6. 变量命名:变量首字母小写,多词命名时第二个词及以后首字母大写,如userName。英文变量名更能表达意义,如果名称过长,可以适当缩写,但需遵循Java命名规范。 7. 字段命名:数据库表名和字段名均使用小写英文,...

    单点登录源码

    通用用户管理系统, 实现最常用的用户注册、登录、资料管理、个人中心、第三方登录等基本需求,支持扩展二次开发。 &gt; zheng-wechat-mp 微信公众号管理平台,除实现官网后台自动回复、菜单管理、素材管理、用户管理...

    hibernate基础 快速入门 一

    - **类名和方法名:** 类名首字母大写,采用驼峰式命名法;方法名采用小驼峰式命名。 **实体类示例:** ```java public class User { private Integer id; private String name; private String address; ...

    zTree插件下拉树使用入门教程

    注意,`pId`的第二个字母必须是大写的,否则zTree将无法正确识别父子关系。 接下来,你需要编写一个服务方法,从数据库中获取数据,将其转换为`ZtreeNode`对象列表,最后再转换为JSON字符串。以下是一个示例: ```...

    养成良好java代码编码规范

    3. Spring的bean配置文件名必须小写,格式为xxx.bean.xml,xxx.bean.xml配置文件中的&lt;bean id=”” ,此处的id,就是将类名的第一个字母小写放到此处。 4. xwork的配置文件名必须小写,且遵循xwork_xxx.xml的格式...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    第二章 系统设计 2.1. 系统分析 在整个blog进行开发之前,要确定出整个项目的整体架构,包括系统的选型、运行环境的确定及系统结构设计。下面对这进行详细介绍。 在进行软件系统开发的最初环节,一般都需要进行...

    freemarker总结

    cap_first:使字符串第一个字母大写 lower_case:将字符串转换成小写 upper_case:将字符串转换成大写 trim:去掉字符串前后的空白字符 下面是集合的常用内建函数 size:获取序列中元素的个数 下面是数字值的常用...

Global site tag (gtag.js) - Google Analytics