【SpringBoot 2】(四)详析SpringBoot的常用注解

🛫更多知识总结见SpringBoot 2专栏

 🚕本篇知识点总结自尚硅谷雷神的视频

🚒博主对于该知识尚在学习阶段

🚄如果发现存在问题请毫不吝啬的指出

🚀🚀扎哇太枣糕的博客首页🚀🚀

1e3dd569c1e4419ca9e134fe872da84c.gif

目录

向容器注册组件@Bean

注册组件的@Component

条件装配@Conditional

导入配置文件@ImportResource

添加指定类的组件到容器@Import

配置绑定@ConfigrationProperties


向容器注册组件@Bean

        在Spring中向容器中注册一个Bean使用的是applicationContext.xml配置文件中的bean标签,但是SpringBoot中使用的是MyConfig配置类中方法加@Bean注解。这两种方式得到的结果是一样的,只不过是两种不同的编码风格而已。

        单纯的写代码还不行,要想办法让容器知道你想要注册Bean,Spring使用的方法是在web.xml中声明applicationContext.xml配置文件使其中的配置生效,SpringBoot使用的是@Configuration注解向容器中注册,因为配置类其本身而言也是一个组件。

🚩配置类中使用的注解
@Configuration:向SpringBoot声明这是一个配置类,相当于web.xml里的配置文件声明
@Bean:向容器注册注解下面方法返回值对应的对象,相当于bean标签。@Bean注解还可以使用参数给对象命名,相当于bean标签中的id属性。默认命名为注解下面的方法名

🚩获取指定的组件

        run.getBean()方法

🚩容器中对象创建模式
        默认为单例模式,也就是在容器中创建好所有的对象,当外部需要获取对象的时候跳过创建步骤直接去容器中拿即可,所以说无论外部调用多少次组件注册方法获取的都是同一个对象。

        当然还可以修改属性proxyBeanMethods(Bean方法代理模式)的值进行单例多例的切换,属性值的改变导致SpringBoot底层拥有两种配置模式:

  • Full(全配置):proxyBeanMethods为true,单例,判断容器中有没有该对象,有则直接取无则创建
  • Lite(轻量配置):proxyBeanMethods为false,多例,对象直接创建。相较于全配置的先判断再创建或者获取,Lite直接创建节省了时间,所以被称为是轻量级配置。

        如果存在组件依赖的问题的话,必须采用全配置。所谓的组件依赖就是说在容器中一个组件中的属性是另一个组件或者说使用到了另一个组件,此时就称这个组件依赖于另一个组件。如果采用轻量配置的话,这个组件中的属性将不是另一个组件对象,虽然对象名称都一样但是地址不同。

注册组件的@Component

@Component:每一层都通用的注解,用于注册组件到容器中,相当于bean标签。缺点就是辨识度不高,无法通过注解理清楚这是哪一层的业务

@Controller:controller层的作用相当于@Component注解

@Service:service层实现类的作用相当于@Component注解

@Repository:mapper层实现类的作用相当于@Component注解

条件装配@Conditional

@Conditional:满足条件就向容器中注册组件

案例一@ConditionalOnBean:容器中的组件之间存在组件依赖,当被依赖的组件不存在的时候,不向容器中添加另一个组件

⚠  如果将这个注解放在类上的话, 即是满足条件时类中的所有方法才能生效,否则都不生效。

 ⚠  并且在类中的组件注册也是顺序的,使用条件装配注解时会因为注册写在后面就被判断为不满足条件

案例二@ConditionalOnMissingBean:没有组件时进行装配

导入配置文件@ImportResource

@ImportResource

添加指定类的组件到容器@Import

@Import:调用类中的无参构造器创建一个对象作为组件添加到容器中,组件的默认名为类的全限名

配置绑定@ConfigrationProperties

@ConfigrationProperties:将实体类与配置文件的配置项相绑定,直接给实体类中的属性注入数据。prefix属性是指定配置文件里引用属性的前缀,且@ConfigrationProperties必须配合@Component注解使用才能让容器知道有这么一个绑定规则

 如果@ConfigrationProperties不配合@Component注解使用的话,还可以在配置类上使用@EnableConfigurationProperties让容器知道有这么一个绑定规则,属性为实体类的class文件

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/535110.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

苹果7手机严重卡顿_苹果手机仅配备4GB运存都不会卡顿,安卓系统为何要更多内存?...

原标题:苹果手机仅配备4GB运存都不会卡顿,安卓系统为何要更多内存?众所周知,安卓系统历经十余年的发展,目前最低的运行需求是8GB内存,如果是旗舰机的话还要标配12GB或更高。但是前几天刚发布的iPhone12&…

IntelliJ IDEA自动生成自定义的类注释和方法注释

目录 自定义的类注释 自定义方法注释 实现效果:不用手写即可自动生成如下图的类上注释和方法上的注释,我们只需要填写方法注释的参数和返回值文字描述即可,大大节省了代码开发的时间提高代码开发效率。 🌕 自定义的类注释 Fil…

violinplot如何看懂_一张图告诉你如何看懂个股大趋势

昨日在T0交易利好消息的影响下,券商股全线大幅高开,带动三大指数高开走高,科技题材股全线活跃,两市量能明显放大,形成量价齐升的良性态势,上证冲上2917,收在2915,创业板大涨3%以上&a…

jz指令是什么意思_S7-200 SMART 运动控制指令详解-电气阿伟带小白启程

大家好,我是工控阿伟,今天又跟大家见面了。学习需要坚持,需要钻研,做技术亦是如此,厚积才能博发。阿伟写程序都是自己测试使用过的,需要的可以借鉴,避免走弯路。S7-200 smart 运动控制指令由编程…

【SpringBoot 2】(五)自动配置简析源码 开发中小技巧

写在前面🛫更多知识总结见SpringBoot 2专栏 🚕本篇知识点总结自尚硅谷雷神的视频 🚒博主对于该知识尚在学习阶段 🚄如果发现存在问题请毫不吝啬的指出 🚀🚀扎哇太枣糕的博客首页🚀🚀…

jar包导出无法显示图片或者音乐_如何制作图片视频短片,配上音乐闪耀朋友圈!...

把图片制作成视频短片,再配上一首好听的音乐,发到朋友圈,不仅可以更具创意的分享自己的生活点滴,更能因您的创意获得一大票的赞哦!看到别人分享自己制作的图片视频短片,是不是心痒痒也想做一个呢&#xff1…

【SpringBoot 2】(六)配置文件 web开发相关

写在前面🛫更多知识总结见SpringBoot 2专栏 🚕本篇知识点总结自尚硅谷雷神的视频 🚒博主对于该知识尚在学习阶段 🚄如果发现存在问题请毫不吝啬的指出 🚀🚀扎哇太枣糕的博客首页🚀🚀…

deepl windows_推荐一个为程序员深度开发的翻译插件DeepL

DeepL深度翻译器DeepL一个程序员的翻译神器,可能有人要问,市面上这么多的翻译插件这么多,我为毛要用你的。首先这个翻译神器可以实现多个翻译引擎的翻译,目前支持有道和google,下一步我会把最近特别流行的翻译软件Deep…

再次携号转网_陕西通信管理局:对移动公司拒绝对用户提供携号转网服务的违法行为处罚!...

据陕西省通信管理局网站11月25日消息,陕西省通信管理局25日发出《关于中国移动西安分公司无正当理由拒绝对用户提供携号转网服务调查处理情况的通报》称,近期,省通信管理局对中国移动西安分公司(以下简称西安移动)无正当理由拒绝对用户提供携…

【SpringBoot 2】(七)请求处理——映射 常用注解 方法参数的小技巧

写在前面🛫更多知识总结见SpringBoot 2专栏 🚕本篇知识点总结自尚硅谷雷神的视频 🚒博主对于该知识尚在学习阶段 🚄如果发现存在问题请毫不吝啬的指出 🚀🚀扎哇太枣糕的博客首页🚀🚀…

北方人思想为什么落后_广西人为什么很少到北方打工?

广西虽然山青水秀,环境优美,但目前还是个经济欠发达的地区,很多人在本地很难找到合适的工作,所以纷纷选择外出打工了,包括我自己。在广西外出打工的人群当中,绝大部分人都去了广东,当然&#xf…

刷网络课_网络营销实践心得—刘荟萌

一、实践时间2020.9.1~2020.12.25二、实践内容1、实践资源准备:实践平台账号注册、了解相关网站的使用方法。2、认识网络营销系统:企业网络营销信息源类别及传递渠道调查。3、信息源构建:微信公众号运营、新媒体平台运营(微博、博客)4、网络推…

【SpringBoot 2】(八)数据响应 页面响应

写在前面🛫更多知识总结见SpringBoot 2专栏 🚕本篇知识点总结自尚硅谷雷神的视频 🚒博主对于该知识尚在学习阶段 🚄如果发现存在问题请毫不吝啬的指出 🚀🚀扎哇太枣糕的博客首页🚀🚀…

2020年最快的dns_2020年哪里换旅行证最快取证?需要几天?

关注我的都知道了很多的实用攻略你还在等什么~美妈不论去哪个地方更换旅行证,都喜欢问“这个地方是否可以加急?”“最快几天可以拿到新的旅行证?”今天就来整理一下2020年各地换证需要几天,是否可以加急。"目前更换旅行证有两…

语句拼接_Linux 进阶语句

日常工作需要用到,shell语句用于分析定位生产问题,本次做个记录# 将日志先拷贝到当前目录cp /tmp/nginx.log .本次目标是: 找出log中的404 500的报错#使用管道取出相关日志less nginx.log 通过/ 查询得知 状态码处于第9个字段#使用 awk 筛选出…

【SpringBoot 2】(九)异常处理 web原生组件的注入

写在前面🛫更多知识总结见SpringBoot 2专栏 🚕本篇知识点总结自尚硅谷雷神的视频 🚒博主对于该知识尚在学习阶段 🚄如果发现存在问题请毫不吝啬的指出 🚀🚀扎哇太枣糕的博客首页🚀🚀…

项目管理最佳实践方法_项目管理最佳实践,企业如何进行有效的项目管理

前言:企业在划分项目时,可按照项目的复杂程度、管理范围等将项目分为三个级别,分别是企业级、部门级和小组级(与目标划分原则相同),然后将每一级的目标与项目对应起来。我们知道,企业制定的目标…

【SpringBoot 2】(十)数据库相关

写在前面🛫更多知识总结见SpringBoot 2专栏 🚕本篇知识点总结自尚硅谷雷神的视频 🚒博主对于该知识尚在学习阶段 🚄如果发现存在问题请毫不吝啬的指出 🚀🚀扎哇太枣糕的博客首页🚀🚀…

【SpringBoot 2】(十一)单元测试JUnit 5 指标监控

写在前面🛫更多知识总结见SpringBoot 2专栏 🚕本篇知识点总结自尚硅谷雷神的视频 🚒博主对于该知识尚在学习阶段 🚄如果发现存在问题请毫不吝啬的指出 🚀🚀扎哇太枣糕的博客首页🚀🚀…

多个containers 共用一个pvc_2020阜新PVC-UH市政管厂家-烟台塑胶

2020阜新PVC-UH市政管厂家烟台金沃泉塑胶有限公司主要产品PVC-U、PVC-M、PVC-UH聚氯乙烯给给水管材、HDPE高密度聚乙烯给水管材、CPVC氯化聚氯乙烯、MPP高压电力电缆护套管、PERT-Ⅱ型热力管道、高分子托辊管、水处理膜壳管。公司为电网、南方电网、电建集团、建筑集团、五矿集…