Spring中关于根据ID获取Bean的遇到的问题

从《Spring实战》得知:装配的Bean,Spring会根据类名为其指定一个ID,将类名的第一个字母变为小写。比如SgtPeppers类,它的ID为sgtPeppers

但是,写了测试代码,发现:

1. 如果类名是SgtPeppers,确实通过“sgtPeppers”可以获取到SgtPeppers对象,并且不可以通过”SgtPeppers“获取SgtPeppers对象。

通过“sgtPeppers”可以获取到SgtPeppers对象。

测试代码:

Spring中关于根据ID获取Bean的遇到的问题

测试通过:

Spring中关于根据ID获取Bean的遇到的问题

不可以通过”SgtPeppers“获取SgtPeppers对象。

测试代码:

Spring中关于根据ID获取Bean的遇到的问题

测试不通过,抛出异常:”SgtPeppers“无效

Spring中关于根据ID获取Bean的遇到的问题

2. 但是如果类名是ASgtPeppers,却可以通过”ASgtPeppers“获取到ASgtPeppers对象,不可以通过”aSgtPeppers“获取ASgtPeppers对象。

类名是ASgtPeppers,却可以通过”ASgtPeppers“获取到ASgtPeppers对象。

测试代码:

Spring中关于根据ID获取Bean的遇到的问题

不可以通过”aSgtPeppers“获取ASgtPeppers对象。

测试通过:

Spring中关于根据ID获取Bean的遇到的问题

测试代码:

Spring中关于根据ID获取Bean的遇到的问题

测试不通过,抛出异常:”aSgtPeppers“无效

Spring中关于根据ID获取Bean的遇到的问题

 

SgtPeppers类,ASgtPeppers类就是名称多了个首字母A,里面的属性、方法都一样:

Spring中关于根据ID获取Bean的遇到的问题