SpringBoot组件功能基本注解

@Configuration

在类上添加,相当于告诉容器这是一个配置类
而配置类本身也为容器的一个注册组件

@Configuration(proxyBeanMethods = true)

默认为true,意味代理对象功能开启,每次使用容器中的组件时,都会检查容器中是否已经注册过该组件,保持组件的单实例。外部无论对配置类中的这个组件注册方法调用多少次,获取的都是之前注册容器中的但实例对象。

@Configuration(proxyBeanMethods = flase)

当为false时,配置类就会跳过检查,当通过配置类拿组件时,组件是各自创建的,不为单实例。优点是SpringBoot加载速度快

以此可以分出两个Configration配置,一个是Full(重量级配置),一个是Lift(轻量级配置)

每当我们创建一个Configration代理配置类的时候可以选择这两种模式,若proxyBeanMethodstrue,则在配置类中的组件均为单实例,相互依赖,若为false,则每次创建组件时都会new一个新的对象

@Bean

给容器中添加组件,以方法名作为主键的Id,放回类型为组件的类型,返回的值就是组件在容器中的实例。
在这里插入图片描述

在这里插入图片描述
图中已将配置类中的组件注册到了容器中
注意:注册的组件为单实例。
测试:
在这里插入图片描述
在这里插入图片描述

@Condotional

当满足某些条件之后,才进行组件的注入
在这里插入图片描述
举例说明:@ConditionalOnBean:当容器中有指定Bean存在时,配置该注解的Bean组件才能成功注册
在这里插入图片描述
这种情况下,@ConditionalOnBean指定了tom01组件,而tom01组件并没有注册倒容器中,所以user01也无法注册到容器中。
在这里插入图片描述
因此这两个查询结果均为false。

@ImportResource

可以将以xml文件注册组件的方式以配置类的形式生效。
在这里插入图片描述
若单单只配置xml,这些组件无法正常注册。
在这里插入图片描述
只需在配置类中加上@ImportResource(“classpath:beans.xml”)即可

@ConfigrationProperties

这个注解要先将类放倒容器中注册组件,搭配使用 @Component
当使用的变量的值经常需要改变时,使用该注解,将值注入到JavaBean中。如配置JDBC参数(url,username,password)时,创建一个JDBC类,创建与参数名完全对应的属性名。

比如我在property文件中配置了mycar的属性和属性值。
在这里插入图片描述
在Car类上添加注解@ConfigrationProperties(prefix=“mycar”),这就和配置文件中的mycar对应了起来(***属性值一定要相互对应,完全一样
在这里插入图片描述

我们再从容器中取出car组件,看看属性的值是否已经按照配置文件中的形式添加。

在这里插入图片描述
在这里插入图片描述
结果对应的上,说明成功将配置文件中的只添加到了对应的JavaBean中

@EnableConfigurationProperties

1.开启属性配置绑定功能
2.将指定的类自动注册容器中

这个注解相比起@ConfigrationProperties注解,少了一个@Component注解,但是@ConfigrationProperties依然要添加在指定的类中,不然无法与properties文件中的值相互对应

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值