一般情况下,我们在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:
1 2 3 |
@Component public class TEST { } |
上面这段代码用 getBean("TEST")
可以获取到bean,但是 getBean("test")
不可以,另外类命名还是要以驼峰命名规则。
0