带你了解Spring中bean的获取
目录
- Spring 中bean的获取
- 总结
Spring 中bean的获取
1.通过context.getbean 的方式来获取bean那么通过可以通过context.getbean 的方式来获取bean的时候、如何填写要获取的bean的名字呢?也就是spring容器如何给注册到容器中的bean命名呢?
ApplicationContext:是spring继BeanFactory之外的另一个核心接口或容器,允许容器通过应用程序上下文环境创建、获取、管理bean。也就是Spring中的所有的bean都是在这里管理的。
文章图片
【带你了解Spring中bean的获取】
AnnotationBeanNameGenerator
调用的是buildDefaultBeanName
方法文章图片
文章图片
buildDefaultBeanName
方法调用的是Introspector.decapitalize
方法、也就是Introspector类中的decapitalize方法、这是JDK1.8的函数。命名的规则就是如果传入的类的名字的长度大于1的话、如果第一个和第二个字母都是大写的话、那么就返回类的名字、否则就将类的名字的首字母变为小写的字母返回.文章图片
我们可以调用这个函数来做测试:
文章图片
当传入的String是User、USer、USER 、 user的时候分别返回的是user、USer、USER、user、结果也是符合我们的预期的
文章图片
2.通过类型来获取注册到Spring容器中的bean两者从Spring容器中获取的bean是同一个bean
LoginController loginController1 = context.getBean(LoginController.class);
文章图片
文章图片
3.也可以使用这两个注解来取出对象、也就是将这两个对象作为另外一个对象的属性的时候、可以使用这两个注解来实现取bean。
@Autowired
@Resource
文章图片
使用这三种的方式获取到的bean都是同一个bean。
文章图片
总结 本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注脚本之家的更多内容!
推荐阅读
- 我们重新了解付费。
- Activiti(一)SpringBoot2集成Activiti6
- 拍照一年啦,如果你想了解我,那就请先看看这篇文章
- SpringBoot调用公共模块的自定义注解失效的解决
- C语言中的时间函数clock()和time()你都了解吗
- 解决SpringBoot引用别的模块无法注入的问题
- 不废话,代码实践带你掌握|不废话,代码实践带你掌握 强缓存、协商缓存!
- 操作系统|[译]从内部了解现代浏览器(1)
- 生发知识,带你深入了解
- 2018-07-09|2018-07-09 Spring 的DBCP,c3p0