【springboot】4、容器功能

导读:本篇文章讲解 【springboot】4、容器功能,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

spring中注入组件的注解

springboot的核心始终还是spring,spring中的组件在springboot中基本都能够使用,类似的,我们在springboot中也可以使用@Component,@Controller,@Service,@Repository等进行容器的注入
在这里插入图片描述

在上面我就使用@RestController注入了一个Controller,我们debug查看singletonObjects

在这里插入图片描述
在这里插入图片描述

可以发现已经成功注入了容器中,其它也是类似的,就不再测试了

@Configuration

我们可以通过这个注解来指定配置类,我们在配置类中可以很方便的往容器中注入注解。在传统的spring中,注入组件到容器一般就是通过注解或者配置文件,在springboot中我们可以通过在配置类中写一个方法即可
在这里插入图片描述
在这里插入图片描述
上面是我创建的一个配置类,使用@Configuration进行标识的,在这个类中我们写了一个dahuang的函数,返回一个Dog,这个函数使用了@Bean进行标识,这就标识这个函数返回的bean将会杯注入到容器中,名称就是函数名称,当然,我们也可以使用@Bean进行指定。
在这里插入图片描述

我们debug进行查看,看容器中是否又名称为dahuang的bean

在这里插入图片描述

可以发现确实成功注入了。注意:我们使用@Configuration标识的类本身也会注入到容器
在这里插入图片描述

原因就是Configuration注解包含了Component注解

在这里插入图片描述

@Import

我们可以使用@Import来注入组件
在这里插入图片描述
这个注解应用到配置类上,需要传入一个数组,里面写上要注入的组件就行了
在这里插入图片描述
上面的代码,我蒋Dog注入了容器,默认名称就是类的全路径
在这里插入图片描述

@Conditional

这个注解是一个根注解,在满足相应条件时才进行注入,改注解有许多的扩展注解
在这里插入图片描述

常见注解作用如下

在这里插入图片描述
这些注解可以作用到类上,也可以作用到方法上,只有满足条件组件才会被注入到容器中,下面通过一个@ConditionalOnJava来进行演示。改注解可以判断系统的java版本是否符合要求
在这里插入图片描述

这个方法上的注解就表示只有java版本为9时才会注入名为dahei的注解,我的java版本为8

在这里插入图片描述
发现容器中并没有为dahei的组件
在这里插入图片描述
下面将条件设置成为8
在这里插入图片描述
再次获取组件为dahei的,没有问题
在这里插入图片描述
其它的注解用法类似,依次类推即可

@ImportResource

这个注解用于原生配置文件引入, 也就是可以直接导入 Spring 传统的 beans.xml ,可以认
为是 SpringBoot 对 Spring 容器文件的兼容.
在这里插入图片描述
下面我们创建一个spring配置文件,并且配置了一个id为wangcai的Dog
在这里插入图片描述
我们通过@ImportResource进行引入
在这里插入图片描述
可以发现我们引入时可以指定位置,下面在配置类上进行引入
在这里插入图片描述
下面来测试一下是否引入成功
在这里插入图片描述
可以发现已经成功引入了

配置绑定

我们可以通过@ConfigurationProperties这个注解去读取配置文件中的内容,这样容器中bean的属性会去绑定配置文件中的属性
在这里插入图片描述
下面创建了一个People类,该类会去读取前缀为people的信息
在这里插入图片描述
可以发现出现了爆红提示,这个可以忽略,我们也可以引入一个jar来进行解决

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-configuration-processor</artifactId>
	<optional>true</optional>
</dependency>

下面我们获取一些id为people的组件,查看属性是否成功绑定

在这里插入图片描述
可以发现没有问题。对于属性绑定,我们还可以使用另外一个注解@EnableConfigurationProperties
在这里插入图片描述
这个注解的功能可以开启bean的配置绑定功能,还会将其自动注册到容器。我们在配置类上使用该注解将People注入到容器
在这里插入图片描述
注意: 我们需要将People上的@Component取消掉
在这里插入图片描述
看下是否绑定成功
在这里插入图片描述
可以发现已经成功完成了属性的绑定。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/74806.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!