前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Spring学习笔记-06. 如何与Spring集成

Spring学习笔记-06. 如何与Spring集成

作者头像
付威
发布于 2020-02-17 03:43:07
发布于 2020-02-17 03:43:07
43500
代码可运行
举报
运行总次数:0
代码可运行

全局组件初始化

对于组件的全局的初始化,可以使用前面所说的ImportBeanDefinitionRegistrar这个方法来指定初始化方法,以开源的队列QMQ的源码为例:

@EnableQmq实现方式
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Import(QmqConsumerRegister.class)
public @interface EnableQmq {

    String appCode();

    String metaServer();
}

其中QmqConsumerRegister实现代码如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 @Override
    public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
      ...
    }

Spring在扫描包的时候,会自动的运行registerBeanDefinitions中的方法,实现组件初始化。

单实体使用

利用bean的生命周期可以优雅的实现,其中 @PostConstruct和@PreDestroy写法更容易,也比较好控制,缺点就是需要找到的对应的入口,对于源码阅读不是很友好。

(本文完)

作者:付威 博客地址:http://blog.laofu.online 如有任何知识产权、版权问题或理论错误,还请指正。 本文是付威的网络博客原创,自由转载-非商用-非衍生-保持署名,请遵循:创意共享3.0许可证

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-01-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Spring Boot 自动装配是如何实现的?
当我们使用Spring Boot的时候,只需要在启动类上加@SpringBootApplication注解即可,非常方便。@SpringBootApplication是一个复合注解
Java识堂
2021/04/20
7600
Spring Boot 自动装配是如何实现的?
Spring Enable*高级应用及原理
Enable* 之前的文章用到了一些Enable*开头的注解,比如EnableAsync、EnableScheduling、EnableAspectJAutoProxy、EnableCaching等,Enable表示开启/允许一项功能。 Enable*工作原理 我们只需要几个很简单的注解就能开启一个复杂的功能,这是多么简易的用法,这是怎么办到的? 首先来看看计划任务@EnableScheduling的源代码 @Target(ElementType.TYPE) @Retention(RetentionPo
Java技术栈
2018/03/30
8840
Spring Enable*高级应用及原理
Spring Boot@Enablexxx模块驱动
bean并没有被springboot扫描并装载,然后在引导类SpringBootEnableApplication上面加注解@EnableHelloWorld,再次启动项目,通过日志可以看到Student
花落花相惜
2021/11/23
3180
【Spring注解驱动开发】二狗子让我给他讲讲@EnableAspectJAutoProxy注解
作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:
冰河
2020/10/29
4120
【Spring注解驱动开发】二狗子让我给他讲讲@EnableAspectJAutoProxy注解
【Spring】Spring高级话题-@Enable***注解的工作原理
在用到AOP的自动代理的时候用,如果你理解了Java的动态代理,很容易的就会熟悉AOP的自动代理的。
谙忆
2021/01/21
4630
Spring中Enable*功能的使用
@Enable** 注解,一般用于开启某一类功能。类似于一种开关,只有加了这个注解,才能使用某些功能。
zeody
2019/05/05
1.7K0
Spring中Enable*功能的使用
如何实现类似@Component的Spring动态注入功能
我们在上一篇对Mybatis如何将Mapper接口注入Spring IoC进行了分析,有同学问胖哥这个有什么用,这个作用其实挺大的,比如让你实现一个类似@Controller的注解(或者继承某个统一接口)来完成比如定时任务的统一注入或者Websocket处理器的统一注入等这种将某种共性的Bean动态注入。
码农小胖哥
2020/09/27
1.3K0
SpringBoot中的@Import注解
看注释value通常是一个普通的组件,Configuration,ImportSelector,ImportBeanDefinitionRegistrar。
用户4283147
2022/10/27
4930
Spring Boot - 自动装配中的不可忽视的@Import
在使用 Spring Boot 时,@Import 也是一个非常常见的注解,可以用来动态创建 Bean。
小小工匠
2021/08/17
1.7K0
Spring Boot - 自动装配中的不可忽视的@Import
教你写Spring组件
原文地址:https://www.cnblogs.com/qnlcy/p/15905682.html
落寞的鱼丶
2022/02/22
5090
Spring Boot通过ImportBeanDefinitionRegistrar动态注入Bean
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
程序新视界
2019/12/10
5.7K0
Mybatis是如何向Spring注册Mapper的
有时候我们需要自行定义一些注解来标记某些特定功能的类并将它们注入Spring IoC容器。比较有代表性的就是Mybatis的Mapper接口。假如有一个新的需求让你也实现类似的功能你该如何下手呢?今天我们就从Mybatis的相关功能入手来学习其思路并为我所用。
码农小胖哥
2020/09/21
7180
Mybatis是如何向Spring注册Mapper的
【框架源码】Spring源码底层IOC容器加入对象的方式
互联网小阿祥
2023/05/28
1660
【框架源码】Spring源码底层IOC容器加入对象的方式
Spring注解开发
文章目录 1. @Configuration 2. @Bean 2.1. 属性 2.2. 实例 3. @Scope 3.1. 四大作用域 4. @Conditional 4.1. ConditionContext 4.2. AnnotatedTypeMetadata 5. @PostConstruct 6. @PreDestroy 7. @Import 7.1. 直接导入类 7.2. 导入配置类 7.3. 指定ImportSelector 7.3.1. AnnotationMetadata 7.4. 使
爱撒谎的男孩
2019/12/31
4660
聊聊自定义实现的SPI如何与spring进行整合
上一篇文章主要聊聊如何实现一个带有拦截器功能的SPI。今天就来聊聊自定义的SPI如何与spring整合。
lyb-geek
2021/11/09
5220
聊聊自定义实现的SPI如何与spring进行整合
Spring 注解之@Import 注入的各种花活
今天来分享一下 pig4cloud 中涉及的 @Import 的注入形式。通过不同形式的注入方式,最大程度使得架构简洁。
冷冷
2020/01/20
4440
Spring Cloud源码分析:第一篇
莫要嘲笑看源码的朋友,现在面试仅仅是八股文是靠不住了,更多是问项目问题以及源码及问题。我也是逼不得已,不然谁想造轮子,很累且枯燥!
田维常
2023/08/31
3360
Spring Cloud源码分析:第一篇
springboot项目启动原理_spring原理和实现机制
SpringBoot的启动类上使用@SpringBootApplication注解标识,该注解试一个组合注解,包含多个其他注解。
全栈程序员站长
2022/10/03
3290
springboot项目启动原理_spring原理和实现机制
SpringBoot源码学习(十四)- 动态bean注册
在看源码的时候,我们发现了一个接口ImportBeanDefinitionRegistrar,当时只是简单的了解了一下spring的大概,没有做复习。在我们开始学习mybatis源码的时候,发现这个接口成为我们必要学习的东西。那么这个接口是做什么的,还有就是这个接口的原理是什么。怀着疑问,让我们学习一下吧!
写一点笔记
2020/12/31
6380
SpringBoot源码学习(十四)- 动态bean注册
SpringBoot 应用篇之从 0 到 1 实现一个自定义 Bean 注册器
我们知道在 spring 中可以通过@Component,@Service, @Repository 装饰一个类,通过自动扫描注册为 bean;也可以通过在配置类中,借助@Bean来注册 bean;那么除了这几种方式之外,还有什么其他的方式来声明一个类为 bean 么?
一灰灰blog
2019/12/19
1.1K0
相关推荐
Spring Boot 自动装配是如何实现的?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验