带你了解Spring中bean的获取
作者:保护眼睛 时间:2021-10-10 09:53:10
Spring 中bean的获取
1.通过context.getbean 的方式来获取bean
ApplicationContext:是spring继BeanFactory之外的另一个核心接口或容器,允许容器通过应用程序上下文环境创建、获取、管理bean。也就是Spring中的所有的bean都是在这里管理的。
那么通过可以通过context.getbean 的方式来获取bean的时候、如何填写要获取的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
LoginController loginController1 = context.getBean(LoginController.class);
两者从Spring容器中获取的bean是同一个bean
3.也可以使用这两个注解来取出对象、也就是将这两个对象作为另外一个对象的属性的时候、可以使用这两个注解来实现取bean。
@Autowired
@Resource
使用这三种的方式获取到的bean都是同一个bean。
来源:https://blog.csdn.net/qq_45859087/article/details/119273493
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
java页面中文乱码的解决办法
Android采取ContentObserver方式自动获取验证码
Java 读写锁实现原理浅析
![](https://img.aspxhome.com/file/2023/6/68756_0s.jpg)
C# FileStream简单介绍和使用
Android用过TextView实现跑马灯效果的示例
Java 中ThreadLocal类详解
resty mail的简单发送邮件方法
解决IntelliJ IDEA中鼠标拖动选择为矩形区域问题
![](https://img.aspxhome.com/file/2023/6/65176_0s.png)
实例详解SpringBoot默认的JSON解析方案
SpringBoot项目的logback日志配置(包括打印mybatis的sql语句)
![](https://img.aspxhome.com/file/2023/7/63767_0s.png)
Java实现打字游戏
![](https://img.aspxhome.com/file/2023/4/71594_0s.jpg)
Maven打包没有指定主类问题(xxx.jar中没有主清单属性)
SpringBoot整合MongoDB的步骤详解
![](https://img.aspxhome.com/file/2023/6/65166_0s.png)
浅谈Spring中Bean的作用域、生命周期
![](https://img.aspxhome.com/file/2023/7/59567_0s.png)