【springboot】4、容器功能
  TEZNKK3IfmPf 2023年11月12日 21 0

spring中注入组件的注解

springboot的核心始终还是spring,spring中的组件在springboot中基本都能够使用,类似的,我们在springboot中也可以使用@Component,@Controller,@Service,@Repository等进行容器的注入
【springboot】4、容器功能

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

【springboot】4、容器功能
【springboot】4、容器功能

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

@Configuration

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

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

【springboot】4、容器功能

可以发现确实成功注入了。注意:我们使用@Configuration标识的类本身也会注入到容器
【springboot】4、容器功能

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

【springboot】4、容器功能

@Import

我们可以使用@Import来注入组件
【springboot】4、容器功能
这个注解应用到配置类上,需要传入一个数组,里面写上要注入的组件就行了
【springboot】4、容器功能
上面的代码,我蒋Dog注入了容器,默认名称就是类的全路径
【springboot】4、容器功能

@Conditional

这个注解是一个根注解,在满足相应条件时才进行注入,改注解有许多的扩展注解
【springboot】4、容器功能

常见注解作用如下

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

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

【springboot】4、容器功能
发现容器中并没有为dahei的组件
【springboot】4、容器功能
下面将条件设置成为8
【springboot】4、容器功能
再次获取组件为dahei的,没有问题
【springboot】4、容器功能
其它的注解用法类似,依次类推即可

@ImportResource

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

配置绑定

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

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

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

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

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

推荐阅读
TEZNKK3IfmPf