对Spring Bean的理解

1.什么是spring bean?

springbean是spring中最基本的组成单元

在spring官方中解释:

在spring中,构成应用程序主干并由spring IOC容器管理的对象称之为bean。

bean是由一个spring IOC容器实例化,组装和管理的对象。

简单解释:

bean是对象,一个或多个不限定

bean托管在spring中一个叫IOC容器中

我们的程序是由一个个bean构成的

2.定义spring bean有哪些方式?

第一种:基于xml的方式配置

--》bean实例实现类来自第三方类库,比如datasource等

--》需要定义命名空间的配置,如:context,aop,mvc等

第二种:基于注解扫描的方式配置:

在开发中需要引用的类,如controller,service,dao等

spring提供了四个注解:

@Context,声明为控制层组件的bean

@Service,声明为业务逻辑层的组件bean

@Repository,声明为数据访问层的组件bean

@Component,对组件的层次难以定位的时候使用

第三种是基于Java类的配置

--》1.需要通过代码控制对象创建逻辑的场景

--》2.实现零配置,消除xml配置文件的场景

使用基于类上的配置需要以下步骤:

1.@BeanConfiguration类上配置@Configuration注释

2.在方法上使用@bean注解

3.通过AnnotationConfigApplicationContext或子类来启动Spring容器

3.Spring容器如何加载bean?

bean的配置定义好以后,spring是如何创建bean的实例的。

spring解析好这些配置内容,我们将这些配置内容都转换为一个BeanDefinition的对象

BeanDefinition的对象几乎保存了所有的配置文件中声明的内容,BeanDefinition的一个Map中,以beanName作为key,以BeanDefinition的对象作为Value

之后spring根据beanName找到BeanDefinition的对象,再去选择具体的创建策略

 

posted @   开源遗迹  阅读(222)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示