关于Spring Bean容器的理解

发布时间:2024年01月13日

Spring Bean 对象

Spring Bean 是Spring框架中的一个核心概念。在Spring框架中,Bean是指那些组成应用程序的对象,它们由Spring IoC容器实例化、组装和管理。Bean是一个被实例化、组装和由Spring IoC容器所管理的对象。

Spring Bean 容器

Spring Bean容器是Spring框架的核心部分,负责管理应用程序中的Bean。它是一个强大的工厂(或容器),负责初始化、配置和组装Bean。容器通过读取配置元数据(例如XML、注解或Java配置)来了解应用中的对象及其相互依赖关系。

spring对于bean实例化的管理
  • 默认情况下调用类的无参构造方法进行
  • 通过普通工厂进行对象的实例化
  • 通过静态工厂进行对象的实例化
spring对于bean的作用域

含义:bean在spring容器中创建的策略以及访问的范围(Spring定义了多种作用域(如单例、原型等),决定了Bean的生命周期和可见性)

编写位置:bean标签属性位置

编写语法:scope=""

属性值

singleton========>单例模式====全局唯一====性能好====安全性低(默认方式)


prototype========>多例模式====全局不唯一====性能不好====安全性高

spring对于bean的生命周期管理

实例化=====>容器创建的时候实例化


初始化=====>实例化完成,则自动初始化? ?nitializingBean类中的afterPropertiesSet? init-method属性绑定方法


使用操作


销毁======>容器关闭,所以的bean则自动销毁,销毁前会执行destroy-method=""方法,完成资源回收

spring管理bean的自动装配

手动注入:

<property name="service" ref="serviceImp"></property>

<constructor-arg></constructor-arg>

含义:将对象用DI的编程思想,自动注入给调用者

编写位置:bean与beans标签的属性

编写语法

autowire=" " ============> 局部设置


default-autowire=" " ====> 全局设置

编写属性

byType==========>按照类型自动装配 属性类型与bean的class一致(通过set注入实现)


byName==========>按照id属性自动装配 属性名称与bean的id一致(通过set注入实现)


constructor==========>按照类型自动装配 属性类型与bean的class一致(通过构造方法注入实现)


no==========>默认设置,无自动装配

编写注意

  1. 按照类型装配,避免容器中有相同类型
  2. 按照名字装配,要保证需要的对象名在spring容器中有对应的id
  3. 可以同时进行全局与局部设置,就近原则
  4. 自动装配能简化代码配置,但是在大型项目中不推荐使用,可读性差

文章来源:https://blog.csdn.net/2302_78070106/article/details/135562394
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。