springboot3 Bean对象管理

【SpringBoot】一、SpringBoot3新特性与改变详细分析 一文快速读懂SpringBoot3改变& 新特性,包含AOT和GraalVM的安装 阅读详情

Bean扫描

 Bean注册

 @Bean 

 @Import 

注册条件 

​编辑 自动配置  

​编辑 自定义starter


Bean扫描

        约定大于配置,在一个启动类中使用@SpringBootApplication其中就能完成自动扫描整个工程包及其子包的内容。

@SpringBootApplication
public class Springboot301Application {

    public static void main(String[] args) {
        SpringApplication.run(Springboot301Application.class, args);
    }

}

@SpringBootApplication是组合注解它组合了:

@SpringBootConfiguration 、@EnableAutoConfiguration 、@ComponentScan

其中 @ComponentScan注解就是用来完成扫描功能

 Bean注册

如果要注册的bean对象来自于第三方(不是自定义的),是无法用 @Component 及衍生注解声明bean对象

解决办法使用如下两个注解:

 @Bean 

        如果要注册第三方bean,建议在配置类中集中注册

@Configuration //配置类注解
public class CommonConfig {
    @Bean 
    public Resolver resolver(){
        return new Resolver();
     }
}

 @Import 

导入配置类

@SpringBootApplication
@Import(CommonConfig.class)
public class SpringbootRegistApplication {

}

 如果需要导入多个可直接导入多个如同数组的形式

但是这样写代码不太优雅所以可以用下面这个办法 

导入 ImportSelector 接口实现类 

还可以写到配置文件中(有多个可写多行)

注册条件 

SpringBoot提供了设置注册生效条件的注解 @Conditional  

 @ConditionalOnProperty

@ConditionalOnMissingBean 

@ConditionalOnClass 

 
自动配置  

遵循约定大约配置的原则,在boot程序启动后,起步依赖中的一些bean对象会自动注入到ioc容器 

 程序引入spring-boot-starter-web 起步依赖,启动后,会自动往ioc容器中注入DispatcherServlet 

 

 自定义starter

在实际开发中,经常会定义一些公共组件,提供给各个项目团队使用。而在SpringBoot的项目中,一般会将这些公共组件封装为SpringBoot 的 starter 

比如自定义mybatis的starter

步骤 

1.创建dmybatis-spring-boot-autoconfigure 模块,提供自动配置功能,并自定义配置文件META-INF/spring/xxx.imports

2.创建dmybatis-spring-boot-starter模块,在starter中引入自动配置模块
 

【SpringBoot篇】详解Bean的管理(获取bean,bean的作用域,第三方bean) 在项目中,我们自定义一个类,如果我们想把这个类交给ioc容器管理,加上@Component衍生注解即可如果这个类不是我们自己自定义的,是我们引入第三方依赖中的,而且我们还想把这个类交给ioc容器管理,那么我们应该定义一个方法,在这个方法上加上@Bean在技术的道路上,我们不断探索、不断前行,不断面对挑战、不断突破自我。科技的发展改变着世界,而我们作为技术人员,也在这个过程中书写着自己的篇章。让我们携手并进,共同努力,开创美好的未来!愿我们在科技的征途上不断奋进,创造出更加美好、更加智能的明天! 阅读详情

相关推荐

SpringBoot---Bean对象的管理

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

2301_79218497的博客 1115

Spring Boot(3):@Configuration注解和@Bean注解

@Configuration注解和@Bean注解

qq_43745578的博客 1182

Spring Boot 3.x 系列【16】创建Bean的八种方式

在Spring中,Bean是指由容器实例化、组装和管理的对象,是构成应用程序的组件。为了更好的使用,所以接下来汇总学习下Spring提供创建Bean的多种方式以及使用场景。

记录知识、锤炼自我 813

Java --- springboot3@Configuration与@Bean注解

一、@Configuration 与@Bean注解 @Configuration //这个类就是配置类相当于配置文件 public class MyConfig { @Bean public User user(){ return new User("老王",25); } @Bean("pet") //相当于组件 public Pet pet(){ return new Pet("小白",1); } } ...

qq_46093575的博客 4008

【SpringBoot 4.x 第8节】夯爆了,依赖注入:从 new 对象到交给 Spring 管理!

🏆 本文收录于 《滚雪球学 Spring Boot 4.x》 专栏。 本专栏面向 有一定 Java 基础,但尚未系统学习 Spring Boot 的读者,采用“滚雪球式学习法”:先跑通、再理解、再重构、再上线,带你从第一个 Hello API 开始,逐步完成一个可部署、可监控、可扩展的后端项目。

**My Coding Family** 4689

CMOS锁相环核心:四种鉴频鉴相器(PFD)结构深度剖析与选型指南

本文深入剖析了CMOS锁相环中四种鉴频鉴相器(PFD)的结构与性能,包括传统RS触发器型、非时钟型、预充电型和边沿触发型PFD。通过详细的电路分析、实测数据和工程案例,提供了PFD选型的实用指南,帮助工程师根据速度、功耗和精度需求选择最优方案,提升锁相环设计效率。

weixin_42530458的博客 584

SpringBoot3 注入Bean方法总结 以及 起始依赖解析

下面我介绍一下@SpringBootAppliacation这个注解。

qq_43513394的博客 562

USB3.0一致性测试方案

为各测试项目具体测试结果包括脉冲串突发时间、脉冲串重复时间、时钟周期以及眼图等完整USB3.0测试项目,工程师可以看到各项测试的具体结果方便观察。RIGOL 提供了一套完善的工具,包括数字示波器、专业的测试夹具以及全自动一致性测试软件,使得USB 3.0设备设计人员能够高效精确地进行信号捕捉、测试与分析。报告第二部分测试摘要,在此可以看到USB3.0测试所有测试项目,并且可以观看到测试是否正常,可以帮助工程师更好的判断测试结果。,以简化下载、存储以及对于多媒体的大量内容的共享。

2409_87378937的博客 2525

黑马2023Javaweb(14&15)|SpringBoot原理(配置优先级、Bean管理、SpringBoot原理)

SpringMVCSpringMVC不是一个单独的框架,它是Spring框架的一部分,是Spring框架中的web开发模块,是用来简化原始的Servlet程序开发的。SSM:三块组成。基于传统的SSM框架进行整合开发项目会比较繁琐,而且效率也比较低,所以在现在的企业项目开发当中,基本上都是直接基于SpringBoot整合SSM进行项目开发的。

leeyayai_xixihah的博客 205

ubuntu20.04开机黑屏卡在/dev/sda1:clean,***files,***blocks,解决心得记录

这个问题如果你百度,会发现目前有很多种解决方法。 有更新显卡驱动的,有卸载上一次安装软件的,还有各种奇奇怪怪的故障原因。 如果你是属于上述情况,那么按照百度和论坛的各种指引操作一般都能解决。 但我这里主要说一种特殊情况,就是我什么也没有操作,我什么也没干。就是正常使用系统关了机突然就报错了。 这也是自己亲自遇到的问题,做个小记录方便以后自己回顾。 上一次出现这种情况我重装系统了,这次用了两个月又出现了,重装成本太高,我接受不了,于是找到解决办法。 首先找个终端进入,进入终端的方法很多,用安装u盘

qq_41517017的博客 2万+

别再对着数据手册发愁了!用HFSS 2023 R2搞定ESP32-C3板载天线的阻抗匹配

本文详细介绍了如何利用HFSS 2023 R2进行ESP32-C3板载天线的阻抗匹配优化,解决实际PCB设计中常见的性能偏差问题。通过智能模型导入、科学参数扫描和量化优化流程,显著提升天线性能,适用于WIFI和蓝牙应用场景。

weixin_42523543的博客 446

【SpringBoot】SpringBoot和Bean的加载流程

在上一篇文章中,我一步步分析了使用 BeanFactory 获取并创建 Bean 的过程,并且解释了 Spring 是如何解决循环依赖的? 【SpringBoot】SpringBoot和循环依赖 一、相关知识补充 1.1类继承结构 DefaultSingletonBeanRegistry 负责单例的注册 AbstractAutowireCapableBeanFactory 自动装配工厂 1.2 创建Bean核心过程简化 ...

天天新知 923

正点原子ATK-LORA-01无线串口代码移植+STM32F103C8T6(标准库)

目录 一、ATK-LORA-01无线串口资料 二、代码移植 1.分析 (1)usart3(也可以是其他的串口)用于接收数据的串口 usart.h (2)time3(也可以是其他的定时器)用于时序的设置 (3)lora.c 三、演示 1.主机(发送方) (1)主机接线 (2)主机代码(发送方) (3)主机实物 插上无线串口通电即可发送​ 2.从机(接收方) (1)从机接线(LORA与主机相同) (2)从机代码(接收方) (3)从机实物 接上TTL和LORA并通电即...

m0_56942354的博客 8962

SpringBoot自动装配原理

Spring Boot框架会自动读取META-INF/spring.factories配置文件中org.springframework.boot.autoconfigure.EnableAutoConfiguration所配置的配置类,然后将其中所定义的bean根据条件注解所指定的条件来决定是否需要将其导入到Spring容器中。--->loadSpringFactories():得到所有组件---》默认位置META-INF/spring.factories;核心注解:@SpringApplication。

m0_68287768的博客 410

海康视觉通讯配置实战:TCP与Modbus协议深度解析

本文深度解析海康视觉系统与PLC通讯的实战配置,聚焦TCP与Modbus两大核心协议。详细阐述了TCP协议如何实现精准触发拍照,包括服务器端配置、数据转换(字符串与十六进制)的关键技巧与避坑指南;同时详解了Modbus协议用于读写PLC寄存器的配置方法、变量绑定及数据类型匹配。文章结合典型应用场景与高级调试技巧,旨在帮助工程师快速打通视觉系统与自动化设备间的数据通道。

m2n3o4p5的博客 819

R语言中的summarise函数和mutate函数用于计算分组占比。下面是关于这两个函数的详细介绍以及相应的源代码示例:

R语言中的summarise函数和mutate函数用于计算分组占比。

CodeByte的博客 1180

springboot s3配置

可以这样初始化:Region region = Region.of(this.region);在`application.properties`或`application.yml`文件中配置S3的访问凭证和端点。首先,你需要在你的`pom.xml`文件中添加AWS SDK for Java的依赖。现在你可以在你的服务或组件中注入`S3Client`并使用它来执行操作,比如上传文件到S3。aws.s3.region=你的区域,例如us-west-2。aws.s3.access-key=你的访问密钥。

yang1276的博客 513

Davinci配置临界区Exclusive Area

在Exclusive Area专属区域内的代码段执行不会被中断,可以用于保护多个Runnable间的共享资源。Exclusive Area会对RTE的调度策略和配置进行约束。如果两个或多个Runnable指向同一个Exclusive Area,那么只有其中一个Runnable被允许在该Exclusive Area内执行。即这些Runnable在ExlcusiveArea内执行时不能并发运行(相互抢占)。:在完整执行期间,整个runnable都在临界区运行。:执行期间可以进入临界区。

qq_42851449的博客 499

Spring Boot3 配置文件

SpringBoot工程下,进行统一的配置管理,你想设置的任何参数(端口号、项目根路径、数据库连接信息等等)都集中到一个固定位置和命名的配置文件(`application.properties`或`application.yml`)中!配置文件应该放置在Spring Boot工程的`src/main/resources`目录下。这是因为`src/main/resources`目录是Spring Boot默认的类路径(classpath),配置文件会被自动加载并可供应用程序访问。

m0_46565230的博客 662

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【Spring源码分析】Spring Scope功能中的动态代理 - Scoped Proxy

本文基于Springboot 3.3.2及Springcloud 2023.0.1版本编写。 Spring Scoped Proxy是什么 在使用Spring cloud配置中心动态配置更新功能时,笔者发现在给一个类加上@RefreshScope注解后,其中@Value注入的字段会被自动更新。起初笔者以为Spring在收到配置更新事件后会自动设置该bean的字段值,但测试后发现配置更新是通过重建...

weixin_40437723的博客 178

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

第三十二章:如何获取SpringBoot项目的applicationContext对象

**ApplicationContext对象是Spring开源框架的上下文对象实例,在项目运行时自动装载Handler内的所有信息到内存。传统的获取方式有很多种,不过随着Spring版本的不断迭代,官方也慢慢的不建议使用部分方式。下面我简单介绍一种Spring官方推荐使用的方式! 本章目标 基于SpringBoot平台完成ApplicationContext对象的获取,并通过实例手动获取S...

恒宇少年De成长之路 3527

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

如何获取SpringBoot项目的applicationContext对象

ApplicationContext对象是Spring开源框架的上下文对象实例,在项目运行时自动装载Handler内的所有信息到内存。传统的获取方式有很多种,不过随着Spring版本的不断迭代,官方也慢慢的不建议使用部分方式。下面我简单介绍一种Spring官方推荐使用的方式! 本章目标 基于SpringBoot平台完成ApplicationContext对象的获取,并通过实例手动获取Sprin...

weixin_41649106的博客 415

SpringBoot Bean管理

使用Spring来管理Bean可以提供依赖注入、松耦合、生命周期管理和AOP支持等优势,减少了开发人员的工作量,提高了代码的可维护性和可测试性。相比之下,自己手动管理Bean存在代码冗余、耦合性高、难以管理复杂依赖关系以及缺乏一致性和灵活性等缺点。

码刀攻城 1598

SpringBoot3Bean 管理

但是由于@Conditional的使用有些复杂,于是Springboot便提供了很多衍生注解供我们使用,以下是三种常用的衍生注解。//如果方法的内部需要使用到ioc容器中 已经存在的bean对象,那么只需要在方法上声明即可,spring会自动的注入。如果要注册的Bean对象来自于第三方(不是自定义的),是无法用@Component 及其衍生注解声明Bean的。//如果ioc容器中不存在Country,则注入Province,否则不注入。//如果配置文件中配置了指定的信息,则注入,否则不注入。

weixin_62893948的博客 1187

【Spring】Bean对象和SpringBoot原理

默认情况下Spring项目启动的时候,会把bean都创建好放到IOC容器当中,Spring也提供了一些方法来让我们获取到bean对象。都生成一个默认的bean对象,如果用户自己定义了这个类型的bean,就是用自己定义的,如果他没有定义还想使用就是用默认的。第一种方法就是我们在启动类上重写@ComponentScan 加上我们的包所在的位置,让其扫描我们的包。但是当我们导入第三方依赖的时候,并不可能自己手动的这样一个一个导入,那么第三方依赖会为我们提供。那么我们想,我们引入的第三方依赖是怎么自动配置的呢。

shenqibaobao的博客 1261
上一篇: spingboot3 配置文件、整合mybatis
下一篇: springboot3常用注解使用
open_test01
博客等级 码龄6年 1127粉丝 195原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

open_test01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值