Spring里的getBean(String beanName)大小写敏感的问题

一般情况下,我们在spring里使用bean有两种方式。

一种是 @Component, @Repository, @Service, @Controller 等注解来定义bean, 另一种是 @Configuration/@Bean 这种方式 定义bean,要使用的地方也是直接用@AutoWired来注入就行了。

但是如果我们使用ApplicationContext.getBean(String beanName)这种方式获取bean,就要注意bean的大小写问题了。

默认情况下,上面两种定义bean的方式,如果我们不在属性里加上value或者name进行自定义bean的名称,那么就使用默认的类名作为bean的名称。
在扫描过程中自动检测到组件时,其Bean名称由BeanNameGenerator策略生成。
具体可以看官方文档: 4.10.5 Naming autodetected components: 和 4.12.4.5 Customizing bean naming:

上面这段代码用 getBean("TEST")可以获取到bean,但是 getBean("test") 不可以,另外类命名还是要以驼峰命名规则。

0

发表评论

邮箱地址不会被公开。