Spring总结(上)

(一)三种实例化Bean的方法

1. 使用构造函数

复制代码
	在环境测试中使用的创建Bean的方法是默认的构造函数创建

2. 使用静态工厂

复制代码
    定义一个静态工厂,利用此工厂创建一个Bean实例
复制代码
 	在spring-config.xml中配置bean

3. 使用实例化工厂

复制代码
	使用工厂实例化对象:
复制代码
	将此工厂Bean交给spring容器管理

(二)配置Spring管理的bean的作用域

复制代码
	当Bean交给spring容器管理后,每次使用getBean()获得到的bean对象默认情况下是同一个
	如果想每次获得到的bean对象不同,则在配置文件中定义scope属性:

(三)Spring管理的Bean的生命周期

复制代码
	Spring管理的bean的生命周期,如下配置
复制代码
	默认情况下只有一个bean对象被spring容器管理,当创建容器对象时,会自动创建它所管理的bean对象
复制代码
	但是可以在配置中添加lazy-init="true"属性,表示延迟创建bean对象,那么Bean对象在调用以下语句时创建:
复制代码
	在创建对象是,会调用构造函数,使用init-method="init"进行初始化,当bean对象销毁时自动调用destory进行对象销毁。

Bean对象类:

(四)Spring依赖注入(通过setter方法属性注入)

1.对象注入

复制代码
	有个dao对象,如何被service处理,通过spring容器实现控制反转

PersonDaoBean对象类:

PersonServiceBean对象类:

复制代码
	如何通过spring容器将dao对象注入到service对象中,配置spring-config.xml

方法一:

复制代码
	通过<property>标签实现对象注入,name="personDao"为PersonServiceBean中成员变量(属性),ref="persondao"为引用的dao对象。


方法二:

复制代码
	通过使用内部bean的方法实现注入。

注意:方法一中的一个dao对象可被多个service bean对象使用,但方法二却只能使用一次

2.基本类型注入

复制代码
	基本类型的注入也使用property标签,如

3.集合类型的装配

复制代码
	将各种集合产生setter/getter方法,且getter方法在接口中。

Spring容器注入的配置:

测试:

(五)Spring依赖注入(构造器注入)

通过构造器传入参数注入值:

复制代码
	有一个bean类,定义了有参数的构造器

配置如下:

下期详讲spring知识总结(中)

相关推荐
考虑考虑7 小时前
JDK26中的Map.ofLazy
java·后端·java ee
鶴哥只手遮天10 小时前
Spring AI 2.0.1 深度解析-第 14 章 MCP 服务端(上):注解式实现与工具来源
java·人工智能·开源
鶴哥只手遮天10 小时前
Spring AI 2.0.1 深度解析-第 15 章 MCP 服务端(下):三种协议形态、Streamable 传输与状态管理
java·人工智能·开源
鶴哥只手遮天11 小时前
Spring AI 2.0.1 深度解析-第 16 章 向量存储(上):`VectorStore` 接口体系、`BatchingStrategy`
java·人工智能·开源
鶴哥只手遮天11 小时前
Spring AI 2.0.1 深度解析-第 12 章 工具循环的流式形态、Usage 累加与扩展体系
java·人工智能·开源
鶴哥只手遮天11 小时前
Spring AI 2.0.1 深度解析-第 23 章 模型供应商实现:从 `OpenAiSetup` 到 Bedrock
java·人工智能·开源
鶴哥只手遮天11 小时前
Spring AI 2.0.1 深度解析-第 06 章 内置 Advisor 全景:13 个实现逐个剖到源码级
java·人工智能·开源
鶴哥只手遮天11 小时前
Spring AI 2.0.1 深度解析-第 03 章 消息体系与 Prompt:不可变模型、`ChatOptions` 与模板渲染
java·人工智能·开源
鶴哥只手遮天11 小时前
Spring AI 2.0.1 深度解析-第 24 章 生产实践与 2.x 迁移:陷阱清单、AOT 与调优
java·人工智能·开源
鶴哥只手遮天11 小时前
Spring AI 2.0.1 深度解析-第 10 章 工具调用(中):执行链路、结果转换与工具限制
java·人工智能·开源