SpringBoot底层注解详解

 更新时间:2023年05月15日 09:29:38   作者:无敌的佐菲zzz  
这篇文章主要介绍了SpringBoot底层注解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、 @Configuration

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

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

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

Full模式和Lite模式

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

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

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

二、@Import 导入组件

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

三、@Conditional

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

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

案例:

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

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

四、@ImportResource

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

五、@ConfigurationProperties

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

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

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

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

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

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

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

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

以上就是SpringBoot底层注解详解的详细内容,更多关于SpringBoot底层注解的资料请关注脚本之家其它相关文章!

以上就是SpringBoot底层注解详解的详细内容,更多关于SpringBoot底层注解的资料请关注脚本之家其它相关文章!

相关文章

  • Java开发实现猜拳游戏

    Java开发实现猜拳游戏

    这篇文章主要为大家详细介绍了Java实现猜拳游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • 在mybatis执行SQL语句之前进行拦击处理实例

    在mybatis执行SQL语句之前进行拦击处理实例

    本篇文章主要介绍了在mybatis执行SQL语句之前进行拦击处理实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-04-04
  • Java实现一个简单的缓存方法

    Java实现一个简单的缓存方法

    本篇文章主要介绍了Java实现一个简单的缓存方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • Java移位运算符详解实例(小结)

    Java移位运算符详解实例(小结)

    这篇文章主要介绍了Java移位运算符详解实例(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • JavaWeb的监听器和过滤器你了解吗

    JavaWeb的监听器和过滤器你了解吗

    这篇文章主要为大家详细介绍了JavaWeb的监听器和过滤器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • Java class文件格式之特殊字符串_动力节点Java学院整理

    Java class文件格式之特殊字符串_动力节点Java学院整理

    特殊字符串出现在class文件中的常量池中,本着循序渐进和减少跨度的原则, 首先把class文件中的特殊字符串做一个详细的介绍, 然后再回过头来继续讲解常量池,对java class 文件格式相关知识感兴趣的的朋友一起学习吧
    2017-06-06
  • JDK安装配置教程

    JDK安装配置教程

    这篇文章主要为大家详细介绍了JDK安装配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • Java内存映射 大文件轻松处理

    Java内存映射 大文件轻松处理

    这篇文章主要介绍了Java内存映射 大文件轻松处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Java获取代码中方法参数名信息的方法

    Java获取代码中方法参数名信息的方法

    在java中,可以通过反射获取到类、字段、方法签名等相关的信息,像方法名、返回值类型、参数类型、泛型类型参数等,但是不能够获取方法的参数名。在实际开发场景中,有时需要根据方法的参数名做一些操作,那么该如何操作了呢?下面就通过这篇文章来学习学习吧。
    2016-09-09
  • Java程序连接数据库的常用的类和接口介绍

    Java程序连接数据库的常用的类和接口介绍

    这篇文章主要介绍了Java程序连接数据库的常用的类和接口,包括Connection类和Statement类等,需要的朋友可以参考下
    2015-10-10

最新评论