4-@Configuration注解深入详解


我准备战斗到最后,不是因为我勇敢,是我想见证一切。 --双雪涛《猎人》

[TOC]

Thinking

  1. 一个技术,为什么要用它,解决了那些问题?
  2. 如果不用会怎么样,有没有其它的解决方法?
  3. 对比其它的解决方案,为什么最终选择了这种,都有何利弊?
  4. 你觉得项目中还有那些地方可以用到,如果用了会带来那些问题?
  5. 这些问题你又如何去解决的呢?

声明:本文基于springboot 2.1.3 2.1.3.RELEASE

该注解是用于进行配置的,就是标识某一个类是一个配置类的注解。该注解是spring提供的。位于spring.context包下。

1、基于doc文档的解读

image-20200605230430059

该注解用于类上,并且搭配@Bean注解使该注解标识的方法变成由spring容器管理的Bean对象。每个方法上都会加上这样的一个Bean的注解,方法本身会返回一个对象。

根据class类进行属性的注册。

image-20200605234410082

另一种注册Bean的方式,为xml的方式。

image-20200606225234968

​ 其中<context:annotation-config> 是用于激活那些已经在spring容器里注册过的bean(无论是通过xml的方式还是通过package sanning的方式)上面的注解。

值得注意的是<context:component-scan/>不但启用了对类包进行扫描以实施注释驱动 Bean 定义的功能,同时还启用了注释驱动自动注入的功能(即还隐式地在内部注册了 AutowiredAnnotationBeanPostProcessor 和 CommonAnnotationBeanPostProcessor),因此当使用 <context:component-scan/> 后,就可以将 <context:annotation-config/> 移除了。

根据注解进行扫描

image-20200606232214849

springboot 所以一般启动类都是在最外层的中,以保证默认情况下可以扫描到该类下的所有Bean,在SpringBoot的所有的组件中都会定义在主类的子包下。

加载外部的属性

image-20200608230650032

在上面的doc中看出,在家在外部配置时,可以使用@PropertySource加载自定义的配置。可以指定一个或者多个。

使用@value注解 注入 配置文件中的信息

image-20200608231439273

使用@Import组合多个配置类

image-20200608231800406

这里的注入是可以使用@Import 组合多个配置类

使用@Profile给配置类进行区分

image-20200608232245718

用于区分在同一个Bean 对象名中,具体的注入对象。

相当于在开发环境或者在测试环境中需要使用不同的数据库,所以这种只需要使用该注解就可以实现 一件转换了。

配合@ImportResource导入xml文件中的配置

image-20200608232609579

使用嵌套的@Configuration

image-20200608232724863

这样在使用AppConfig 时,就已经隐式的将DatabaseConfig注入到该Bean中了,避免了显示的使用@Import注解了。

使用懒加载 的配置类

image-20200608233141913

默认情况下,Bean 是随容器启动时,一并创建好的,但是存在懒加载的需求是,可以使用@Lazy将配置类设置为懒加载。

该注解也适用于所有的Bean类

image-20200608233403421

测试类也是支持配置上下文的

image-20200608233457907

其他

image-20200608233731715

可以配置开启spring内置的各种功能。

2、成员变量

别名

image-20200608235515901

默认情况下,如果在缺醒状态下,是使用bean的类名作为名称。

image-20200608235914052

使用该注解的类,默认情况下是会使用cglib将所有的bean 动态生成。

如果设置成false,则配置类就是一个普通的工厂类。


本文仅供笔者本人学习,有错误的地方还望指出,一起进步!望海涵!

转载请注明出处!

欢迎关注我的公共号,无广告,不打扰。不定时更新Java后端知识,我们一起超神。


qrcode.jpg

——努力努力再努力xLg

加油!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,026评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,655评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,726评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,204评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,558评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,731评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,944评论 2 314
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,698评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,438评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,633评论 2 247
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,125评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,444评论 3 255
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,137评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,103评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,888评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,772评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,669评论 2 271