带你了解Spring中bean的获取

 更新时间:2021年08月02日 15:12:15   作者:保护眼睛  
这篇文章主要介绍了Spring在代码中获取bean的几种方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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。
在这里插入图片描述

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • java实现网上购物车程序

    java实现网上购物车程序

    这篇文章主要介绍了java实现网上购物车程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Java实现指定线程执行顺序的三种方式示例

    Java实现指定线程执行顺序的三种方式示例

    这篇文章主要介绍了Java实现指定线程执行顺序的三种方式,包括通过共享对象锁加上可见变量,通过主线程Join()以及通过线程执行时Join()等三种实现方法,需要的朋友可以参考下
    2019-01-01
  • 详解Java中final的用法

    详解Java中final的用法

    本文主要介绍了Java中final的使用方法,final是java的关键字,本文就详细说明一下它的使用方法,需要的朋友可以参考下
    2015-08-08
  • java中flatMap用法完整示例

    java中flatMap用法完整示例

    flatMap是java8的Stream流的一个方法,下面这篇文章主要给大家介绍了关于java中flatMap用法的相关资料,文中通过示例代码和图文介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • 详解Java中的不可变对象

    详解Java中的不可变对象

    这篇文章主要介绍了Java中的不可变对象的相关知识,文中代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以参考下
    2020-06-06
  • Spring之spring-context-indexer依赖详解

    Spring之spring-context-indexer依赖详解

    这篇文章主要介绍了Spring之spring-context-indexer依赖详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Java网络编程实现的简单端口扫描器示例

    Java网络编程实现的简单端口扫描器示例

    这篇文章主要介绍了Java网络编程实现的简单端口扫描器,涉及Java网络编程Socket组建、swing组建及多线程相关操作技巧,需要的朋友可以参考下
    2018-04-04
  • java 中Buffer源码的分析

    java 中Buffer源码的分析

    这篇文章主要介绍了java 中Buffer源码的分析的相关资料,需要的朋友可以参考下
    2017-06-06
  • java实现创建缩略图、伸缩图片比例生成的方法

    java实现创建缩略图、伸缩图片比例生成的方法

    这篇文章主要介绍了java实现创建缩略图、伸缩图片比例生成的方法,可实现针对图片大小的缩放功能,是Java针对图片操作的典型应用,需要的朋友可以参考下
    2014-11-11
  • Mybatis参数传递示例代码

    Mybatis参数传递示例代码

    这篇文章主要给大家介绍了关于Mybatis参数传递的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08

最新评论