springboot--实现自定义包的自动注册bean功能

SpringBoot---Bean对象的管理 在使用Spring的时候,我们要做到Bean扫描,一般是两种方式,一种是用标签规定扫描的包路径,一种是利用注解来规定扫描的包路径。而在SpringBoot中,我们发现没有以上两种方式,那它如何实现Bean扫描呢? 阅读详情

当我们自己生成一个springboot项目的jar包的时候,假设我们在另外一个springboot项目里面引用我们生成的jar包,如何在这个项目启动的时候自动注册jar包里面的bean呢?

方式1:

在生成包的时候在META-INF这个文件夹里面生成一个spring.factories文件,在这个文件里面注册我们的config配置类

方式2:

使用@Enable注解的方式

 

实现过程

方式1:通过spring.factories文件注册

1、构建一个spring项目 autoconfigtest

2、pom引用内容如下

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.2.2.RELEASE</version>
        <scope>provided</scope>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>5.2.2.RELEASE</version>
        <scope>provided</scope>
        <optional>true</optional>
    </dependency>

3、编写配置类 TestAutoConfiguration

4、编写spring.factories内容

5、打包  查看生成的包的内容

6、新建一个springboot项目testapp

7、在pom中新增对autoconfigtest包的引用

8、在springboot启动类里面获取name为person的bean,看是否能获取到

9、查看执行结果,可以看到是可以获取到person这个bean的

 

方式2:通过@Enable注解的方式

1、删除上面autoconfigtest项目中的spring.factories文件

2、编写@Enable注解类 EnableTestAutoConfig

3、打包 查看包内容

4、此时直接执行testapp项目可以看到结果报错

可以看到报错信息提示没有找到name为person的bean

5、修改testapp的启动类,在类上面添加@EnableTestAutoConfig的注解

6、此时再执行一下可以看到获取到了person这个bean

 

 

源码链接:https://gitee.com/xiaxiaoyin/test.git

SpringBoot是如何实现AOP和IOC的 SpringBoot是如何自动实现IOC和AOP的 一、概念解析(AOP & IOC/DI) 本文主要是通过代码实现Spring Boot中的IOC和AOP配置。一些概念性的东西可以去我的博客了解。这里的AOP和IOC是属于Spring容器框架的范畴。和SpringBoot关系不大,因为Spring Boot的初中是整合简化了Spring和Spring MVC的开发。 1、关于IOC/DI的概念分析(简单全面)。☞点击链接前往; 这一片文章是多年前在学习使用Spring的过程中整理的。里面包括了很 阅读详情

相关推荐

PSM倾向匹配详细步骤和程序

目录1.安装psmatch2统计包。2.数据准备3.数据分析及命令解读4.结果解读4.1模型拟合结果,此处无太多实际意义。4.2试验组可匹配的观测概览,按照命令中设定的匹配规则,试验组有8例患者未能匹配到合适对照。4.3结果解读的重点应该是对stata新生成的中间变量的解读。4.4均衡性检验结果4.5匹配结果的图示化5.Stata命令汇总最后留下两个问题给大家思考:题目 试验设计中,匹配的目的在于确保干预效应估计是建立在可比个体之间的不同结果的基础上。最简单的匹配方式是将干预组和对照组中协变量值相同的两个个

平平淡淡,戒急用忍,一生学闭嘴。 5万+

jsp 修改的员工select怎么_SpringBoot+Mybatis+Jsp 员工管理系统

功能:用户登陆,用户注册。登陆成功可以进去员工管理界面,可以增删改查里面的员工信息,提交后保存到后台数据库。新建立一个module,使用快捷开发,项目名 ems , SpringBoot 版本号改成 2.1.13 删除一些文件,在 resources 中添加 application.yml 在 ems 包中再建立一个 controller包,里面写一个 TestController 类。pac...

weixin_39861669的博客 458

关于华为高斯数据库出现Invalid or unsupported by client SCRAM mechanisms定位解决的过程

最近公司有个新项目使用的是高斯数据库,因为我们的项目是直接从别的项目组拿来的,配置都是已经配好的,但是在放到正式环境上之后出现报错。起初我们以为是测试和正式的版本不一致,但是结果是版本一致的。最后这个问题搞了我们几个小时,都没法解决。

Curtisjia的博客 3185

指定自定义Jar包里的Bean随SpringBoot自动扫描注入(注解和Factories机制两种)

当自定义一些Jar包提供给别人使用时,别人的SpringBoot添加maven jar包依赖启动后却无法注入我们的Bean。比如我在Jar包里加了一个切面代理,却没有被注入到SpringBoot中。 这里介绍两种办法: 第一种是通过自定义注解的形式把Bean注入: 自定义注解 @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @Documented @Import({IBasePointAspectConfig.class})

以爱护甲,爱满枫林。 1768

从宁德新能源面试官视角,拆解Halcon/OpenCV图像处理工程师的硬核技能树(附避坑指南)

本文从宁德新能源面试官视角出发,详细拆解Halcon/OpenCV图像处理工程师的核心技能树,涵盖硬件选型、算法实现和系统工程思维三大能力维度。文章提供工业视觉工程师面试的实战避坑指南,包括硬件配置要点、算法优化技巧及职业发展路径,助力求职者系统提升图像处理专业技能。

weixin_28732953的博客 129

Windows 11“此应用已被管理员阻止运行”解决方案

通过本文介绍的两种方法,你应该能够解决Windows 11中“此应用已被管理员阻止运行”的问题。无论你选择创建新管理员账户还是禁用管理员批准模式,都请确保了解相关操作的风险,并根据你的实际需求做出选择。通过禁用“用户账户控制:以管理员批准模式运行所有管理员”设置,可以解决因系统安全设置导致的应用程序被阻止运行的问题。这种方法适用于那些希望简化管理员账户操作流程的用户,但需要注意可能带来的安全风险。通过创建并登录具有管理员权限的新账户,可以解决因系统安全设置导致的应用程序被阻止运行的问题。

mmoo_python的博客 1万+

SpringBoot第十二篇:热加载第三方jar包(解决嵌套jar读取、加载、动态配置、bean注册、依赖等问题),及其精髓

spring boot 动态加载模块(加载外部jar包) ImportBeanDefinitionRegistrar) Spring Boot 如何热加载jar实现动态插件? …

专注分享个人所得,希望给大家带来帮助 1万+

踩坑记录:Clawdbot 对接 Minimax 报错 “401 token is unusable (1004)“ 的终极解决方案

如果你也在配置 Clawdbot 对接 Minimax 模型时,明明 API Key 是新申请的,却死活报错 `401 Unauthorized`,错误码 `1004`,提示 `token is unusable`——那么恭喜你,来对地方了。

hampeter的博客 2001

spring注册项目依赖jar中的Bean到当前项目的spring容器中

spring依赖jar中类扫描

yangfenggh的博客 2189

SAP-RPT-1 深度解读:面向企业表格数据的 rapid one

摘要: SAP在TechEd 2025大会上推出面向企业结构化数据的SAP-RPT-1(Relational Pretrained Transformer),旨在通过in-context learning直接预测表格数据中的缺失值,无需传统机器学习流程。与LLM不同,RPT专为业务表格设计,支持实时预测(如交货延迟、回款风险等)。提供Small(高吞吐)、Large(高精度)和开源版本,用户可通过无代码Playground(上传CSV并用[PREDICT]标记目标列)或Python API快速验证。典型场景

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 236

利用CAT12做皮层指标的统计分析及可视化笔记记录

利用CAT12做皮层指标的统计分析及可视化 文章目录利用CAT12做皮层指标的统计分析及可视化前言一、统计步骤1.Basic Models2.Estimate Surface Models3.Results二、可视化1.t值可视化2.p值可视化 前言 本来没有打算做SBM的,因为自己是新手小白,许多操作都不太懂,但最后还是打算做一下,于是就从上周末开始将很久之前跑VBM得到的surf文件夹中的数据捡起来继续做皮层分析,因为之前看了一个博主的博客,关于如何做SBM已经讲得非常清楚了,但是在统计及可视化这里,我

weixin_52073820的博客 8094

Spring 中的自动配置(Bean的自动注册、依赖注入(简单属性,其他Bean,细节问题))

spring中的自动配置 背景: 随着项目中要让Spring管理的对象越来越多,每个对象及其依赖都通过 XML的方式定义到配置文件中,这个工作量也不小。 Spring 就设想它自己来将你想要被管理的对象注册进容器中。 前提条件: 想要被管理的这个类跟其它普通的类有区别。 这个区别通过标记注解来实现。Spring为我们提供了一些注解 步骤: 1>开启自动配置的功能 跟注解有关的功能 ,导入 Spring 的 aop 模块的jar包. 在配置文件中使用 <context:component-

weixin_47371330的博客 1266

若依开源系统多数据源整合clickhouse数据库详细步骤

若依开源系统多数据源整合clickhouse数据库详细步骤

java之书-资源 897

SpringBoot之Bean扫描、Bean注册

Bean扫描 Bean注册 @Bean @lmport 自定义注解 注册条件

qi341500的博客 2764

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

学习springboot-Bean管理(Bean 注册,Bean 扫描)

1 在springboot 项目中,我们只管写各自注解 ,至于被使用的注解的扫描,解析过程,将交由springboot 自动完成,不需要我们人为操作。2 springboot 项目中可以被扫描的范围是 默认是。

等什么君!的博客 1334

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

SpringBoot中注册Bean的10种方式总结

SpringBoot中Bean是构成应用的核心组件。Spring容器负责管理Bean,包括它们的创建、配置、组装、管理和销毁。其提供了多种方式可以注册Bean。本文将总结这些不同的注册方式适用场景。

码到三十五 7万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【Bean注册】⭐️SpringBoot 项目中常用 Bean 注册方式

SpringBoot 中不同的 bean 注册方式以及使用场景

产品经理克星(狗头) 2169

由浅入深了解SpringBoot框架中的Bean注册

1.新建一个注解,组合@Import注解2.把主启动类的@Import注解替换成自定义注解,测试获取第三方实体,可以成功获取在我们引入自定义的jar过程中,一步一步优化第三方(自定义)的Bean注册方式。经历了一系列的优化,最后的bean注册方式,其实也是SpringBoot框架内部整合第三方时,用到的bean注册方式。理解了本文的Bean扫描和注册,就能理解SpringBoot的自动配置原理。下一篇文章,我将分析SpringBoot的源码,讲解SpringBoot自动配置的过程。

nextStation12138的博客 1664

springBoot之自定义bean的注册方式

springBoot之自定义bean的注册方式

AllureSoul的博客 2522

springboot自动配置是如何实现的?

什么是SpringBoot自动配置? ​ springboot的自动配置,指的是springboot会自动将一些配置类的bean注册进ioc容器,我们可以需要的地方使用@autowired或者@resource等注解来使用它。 ​ “自动”的表现形式就是我们只需要引我们想用功能的包,相关的配置我们完全不用管,springboot会自动注入这些配置bean,我们直接使用这些bean即可。 Sprin...

insomsia的博客 1万+

SpringBoot入门Bean的扫描、Bean的注册、Bean自动配置原理、自定义starter

这个类上有一个注解,@ConditionalOnClass含义是如果存在DispatcherServlet.class这个类,就生效,会自动配置,当引入了starter-web坐标,就会引入DispatcherServlet这个类,所以就自动注入到IOC中了。@ComponentScan 这个注解,相当在启动类上添加了这个注解,不需手动添加了,可以自动扫描的Controller、Service,不指定包路径,默认扫描添加的这个类的包及子包,SpringBoot默认扫描启动类所在的包及其子包。

NeilNiu 1325

SpringBoot 应用篇之从 0 到 1 实现一个自定义 Bean 注册器

虽然我们的目标比较清晰,但是突然让我们来实现这么个东西,还真有点手足无措,应该从哪里下手呢?类似@Component注解的功能,我们弄简单一点即可。

程序员高级码农的博客 1092

SpringBoot--Bean对象管理(Bean对象扫描、Bean对象注册、注册条件)

目录(一)Bean扫描 1.通常用来扫描包的方法2.在SpringBoot中如何扫描 (二)Bean对象的注册案例测试: 准备工作: 1.安装一个jar包:​编辑​编辑 2.将刚才安装好的坐标引入进来: @Bean1.在启动类中添加(不推荐) 2.定义一个配置类 @Import1.导入配置类2.导入ImportSelector接口实现类 3.使用@EnableXxx注解,来封装@Import注解 (三)注册条件@ConditionalOnProperty @ConditionalOnMissingBean@

2301_76890677的博客 1871

SpringBoot中Bean注册

这样当springboot工程启动后,就先扫描import,然后去找到这个CommonlmportSelector实现类,自动执行selectlmports方法,得到这些类名,把这些类名对应的对象注入到IOC容器中。如果要注册的bean对象来自第三方,不是自定义的,无法用@Component 及衍生注解声明bean的。应该用@Bean和@Import。SpringBoot还提供了设置注册生效条件的注解 @Conditional。

nameofworld的博客 954

详解【SpringBoot】Bean管理(Bean扫描,Bean注册第三方bean对象,Bean注册条件)

Bean用于在配置类中定义并注册单个Bean。@Import用于快速导入其他配置类,使得这些配置类中的Bean也可以被Spring容器管理。这两个注解都是Spring框架中非常重要的特性,它们使得Bean的定义和注册变得更加灵活和方便。通过类比生活中的例子,我们可以更好地理解它们的用途和工作原理。

宇宙超粒终端控制中心的博客 1483
上一篇: 多线程 状态 锁 的理解
下一篇: 装饰器模式和代理模式
xiaxiaoying2012
博客等级 码龄14年 9粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值