今天阅读了spring的官方代码,(大概)理解了@Bean和@Order如何使用。

@Bean 官方代码解读:

0、@Bean的注入,用于表示这个bean被spring容器管理(创建、销毁)(官方英文:Indicates that a method produces a bean to be managed by the Spring container.

)。

1、如果有相同的bean,需要在每个bean上加上@Qualify 注解

2、单例的bean不受@Order注解影响,只会受其本身的bean依赖关系和依赖的影响

3、@Configuration 不能用final 和static修饰,因为这些最初的spring JavaConfig要求CGLIB在运行时对每个Config进行子类化

4、bean默认模式下,是通过注解来自动注入的。但是允许外部条件的注入,如name还有type

5、@Bean用于ApplicationContext,JDBC,SqlSession 的close方法的时候,close方法必须是公有并且没有参数的,这个close()可能会抛出异常,需要try catch

6、禁用一个Bean的destroy()(销毁)方法,可以声明其value为"",空字符串。org.springframework.beans.factory.DisposableBean 会检查和校验destroy()的调用。换而言之,value为""的destroy方法,只会影响自定义的close()、shutdown()、java.io.Closeable、java.lang.AutoCloseable 声明的close(),比如在继承java.io.Closeable、java.lang.AutoCloseable后的重载close()。 注意销毁的方法只在那些生命周期完全由工厂掌握(包括但不限于单例模式)下才会被执行。

@Order 解读。

1、@Order 是一个可选择的,代表接口的排序值。越低的数值代表越高的等级。默认值是最大的值,也就是Integer.Max_VALUE=0x7fffffff

2、从spring 4.0开始,@Order 可以支持多种组件,包括集合中的组件注入。@Order 将会影响注入点的顺序。换句话说,也就是影响组件的注入顺序。但是@Order不影响单例的bean,单例的bean只受依赖关系和依赖的影响。(@Bean也是不影响单例的bean)

以上就是我的对官方源码的解读。本人是.NET转java的新人,如果有错,请各位大牛指出。

spring @Bean和@Order 官方doc理解的更多相关文章

  1. Spring 以及 Spring MVC Bean元素以及@Bean (Bean 等价于 注解 ??? 没理解错误吧)

    ①.由衷鸣谢Bossen <还是没看懂o(╥﹏╥)o><> {声明Spring Bean和注入Bean的几种常用注解和区别} Bean在Spring和SpringMVC中无所不 ...

  2. spring @bean 的理解

    1.spring @bean 注解只能注解到方法上 2. 该方法必须返回一个实例对象 3.该过程相当于,通过一个方法去构造一个实例对象 ,然后交给spring管理 4.使用场景   如需要构造出一个特 ...

  3. Spring bean是如何加载的

    Spring bean是如何加载的 加载bean的主要逻辑 在AbstractBeanFactory中doGetBean对加载bean的不同情况进行拆分处理,并做了部分准备工作 具体如下 获取原始be ...

  4. Spring Bean注册解析(一)

           Spring是通过IoC容器对Bean进行管理的,而Bean的初始化主要分为两个过程:Bean的注册和Bean实例化.Bean的注册主要是指Spring通过读取配置文件获取各个bean的 ...

  5. Spring Bean 生命周期之“我从哪里来?” 懂得这个很重要

    Spring bean 的生命周期很容易理解.实例化 bean 时,可能需要执行一些初始化以使其进入可用 (Ready for Use)状态.类似地,当不再需要 bean 并将其从容器中移除时,可能需 ...

  6. Spring bean的作用域以及生命周期

    一.request与session的区别 request简介 request范围较小一些,只是一个请求. request对象的生命周期是针对一个客户端(说确切点就是一个浏览器应用程序)的一次请求,当请 ...

  7. Spring4- 01 - Spring框架简介及官方压缩包目录介绍- Spring IoC 的概念 - Spring hello world环境搭建

    一. Spring 框架简介及官方压缩包目录介绍 主要发明者:Rod Johnson 轮子理论推崇者: 2.1 轮子理论:不用重复发明轮子. 2.2 IT 行业:直接使用写好的代码. Spring 框 ...

  8. Spring入门篇——第4章 Spring Bean装配(下)

    第4章 Spring Bean装配(下) 介绍Bean的注解实现,Autowired注解说明,基于java的容器注解说明,以及Spring对JSR支持的说明 4-1 Spring Bean装配之Bea ...

  9. Spring 学习笔记(2) Spring Bean

    一.IoC 容器 IoC 容器是 Spring 的核心,Spring 通过 IoC 容器来管理对象的实例化和初始化(这些对象就是 Spring Bean),以及对象从创建到销毁的整个生命周期.也就是管 ...

随机推荐

  1. 商业智能BI与用户行为分析的联系

    ​什么是BI? BI(Business Intelligence)即商业智能,它是一套完整的解决方案,用来将企业中现有的数据进行有效的整合,分析利用企业已有的各种商用数据来了解企业的经营状况和外部环境 ...

  2. 自助式bi工具为什么这么受欢迎?

    ​目前比较流行的一种BI形式,当属于自助式BI分析,也就是自助分析平台,即在这个倡导凡事自助的社会中,BI也要以这种形式来呈现.自助式的BI分析相比较于传统的形式,是有很多优点的,我为大家整理了一版. ...

  3. 这个数据分析工具秒杀Excel,可视化分析神器!

    ​入门Excel容易,想要精通就很难了,大部分人通过学习能掌握60%的基础操作,但是一些复杂数据可视化分析就需要用到各种技巧,操作理解难度加深 Excel作为一直是使用最广泛的数据表格工具,在数据量日 ...

  4. 移动BI,移动报表平台

    ​随着大数据时代的到来,随着商业智能衍生出来的移动BI也将处于一片大好的形式中,由于智能手机.移动应用的普及,越来越多的办公软件均已支持了移动办公,这也给移动BI带来了更多的想象,通过一部手机就可以随 ...

  5. C语言中puts()和printf()区别

    puts的功能更加单一,只能输出字符串:printf的功能更加广,可以格式化数据,输出多种类型的数据. puts()函数用来向标准输出设备(屏幕)写字符串并换行. 调用方式为puts(string): ...

  6. [源码解析] NVIDIA HugeCTR,GPU 版本参数服务器---(8) ---Distributed Hash之后向传播

    [源码解析] NVIDIA HugeCTR,GPU 版本参数服务器---(8) ---Distributed Hash之后向传播 目录 [源码解析] NVIDIA HugeCTR,GPU 版本参数服务 ...

  7. 五、Java控制流程

    Java流程控制* 用户交互Scanner.Scanner进阶使用 用户交互Scanner ​ 之前我们学习的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获 ...

  8. oauth2.0密码模式详解

    oauth2.0密码模式 欢迎关注博主公众号「Java大师」, 专注于分享Java领域干货文章http://www.javaman.cn/sb2/oauth-password 如果你高度信任某个应用, ...

  9. C#更新packages

    有时重新clone代码到本地时,会出现references中引用的包报错,这时可以重新更新下载这些包: 在VS工具栏中,Tools→NuGet Package Manager→Package Mana ...

  10. 微信小程序 实现图片上传并展示到前端(多文件)并实现表单提交验证

    链接: https://blog.csdn.net/guanj0623/article/details/121595884?spm=1001.2014.3001.5501 https://blog.c ...