SpringBoot底层注解的相关介绍

蜗牛 互联网技术资讯 2023-10-11 34 0

本篇文章和大家了解一下SpringBoot底层注解的相关介绍。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

一、 @Configuration

我们先来看看,以前我们用spring是怎么配置bean的属性值:

SpringBoot底层注解的相关介绍  springboot 第1张

虽然不算多,但是如果每一个bean都这样配置,属实不容易。这个时候我们的@Configuration来了,看他是怎么进行配置bean的:

SpringBoot底层注解的相关介绍  springboot 第2张

直接在类上加上@Configuration注解,告诉SpringBoot,我们Myconfig是个配置类哈!然后我们只需要创建方法返回一个对象,再在方法上添加@Bean注解将它交给容器来注册。如果我们以后要获取Bean对象,只需要调用这个方法就行了,不过需要注意的是它默认的就是单例的,这和spring一样,如果我们想要它成为多例需要设置一下@Configuration注解里面的proxyBeanMethods属性,因此我们引出了FULL和LITE模式。

Full模式和Lite模式

Full模式是指proxyBeanMethods = true,开启代理bean的方法。此时调用配置类中每一个给而容器注册组件方法,都会从容器中找组件,保持单例模式。它保证了每个@Bean方法无论被调用多少次,返回的组件都是单例的。

SpringBoot底层注解的相关介绍  springboot 第3张

Lite模式是指proxyBeanMethods = false,关闭代理bean的方法。容器中不会保存代理对象,每一次调用配置类里面的方法,·都会产生一个新的对象。这可以解决组件依赖的问题。它保证了每个@Bean方法调用多少次返回的组件都是新创建的。

SpringBoot底层注解的相关介绍  springboot 第4张

SpringBoot底层注解的相关介绍  springboot 第5张

那么我们应该思考什么时候用Full模式什么时候用Lite模式?

SpringBoot底层注解的相关介绍  springboot 第6张

二、@Import 导入组件

我们先看一下这个注解的内部结构。

SpringBoot底层注解的相关介绍  springboot 第7张

SpringBoot底层注解的相关介绍  springboot 第8张

SpringBoot底层注解的相关介绍  springboot 第9张

三、@Conditional

条件装配注解:满足我们Conditional指定的条件,就进行组件注入,不然不进行组件注入。

SpringBoot底层注解的相关介绍  springboot 第10张

我们发现它的子注解还是相对比较多的,我们挑几个常见的注解来说一下:

SpringBoot底层注解的相关介绍  springboot 第11张

案例:

SpringBoot底层注解的相关介绍  springboot 第12张

这里我们故意将这个@Bean("tom")注释掉,但是我们依然保留user01(),我们看看我们的容器中有没有包含user01这个组件:

SpringBoot底层注解的相关介绍  springboot 第13张

false,很遗憾,因为”tom“,user01也无法被注册了。

四、@ImportResource

这个注解是用来导入spring配置文件的

SpringBoot底层注解的相关介绍  springboot 第14张

SpringBoot底层注解的相关介绍  springboot 第15张

五、@ConfigurationProperties

这个注解是用来进行配置绑定的。

SpringBoot底层注解的相关介绍  springboot 第16张

我们有两种方法:
方法一:@Component+@ConfigurationProperties组合使用

SpringBoot底层注解的相关介绍  springboot 第17张

我们在核心配置文件applicantion.properties中配置前缀为mycar的值

SpringBoot底层注解的相关介绍  springboot 第18张

SpringBoot底层注解的相关介绍  springboot 第19张

我们看一下网页上这个car的属性是什么?

SpringBoot底层注解的相关介绍  springboot 第20张

与我们在核心配置文件配置的值相同。

方法二:@EnableConfigurationProperties+@ConfigurationProperties组合使用

SpringBoot底层注解的相关介绍  springboot 第21张

@EnableConfigurationPropertise:开启组件属性配置功能,并把这个组件自动注册到容器中。

需要注意的是: @ConfigurationProperties不会像Spring容器注入相关处理类,只是起到相关标记作用,相关处理逻辑还是由@EnableConfigurationPropertise导入处理类来完成。仅仅被标记EnableConfigurationPropertise注解的类,默认情况下也不会注册为Bean。

以上就是SpringBoot底层注解的相关介绍的简略介绍,当然详细使用上面的不同还得要大家自己使用过才领会。如果想了解更多,欢迎关注蜗牛博客行业资讯频道哦!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo6@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram