寒假学习(7)
Bean 的生命周期
Spring 容器管理的 Bean 有一个完整的生命周期,这个生命周期包括:
1.实例化:Spring 容器会根据配置实例化 Bean 对象。
2.依赖注入:Spring 容器会自动注入所有需要的依赖(通过构造器注入、setter注入或字段注入)。
3.初始化:如果 Bean 实现了 InitializingBean 接口或配置了初始化方法,Spring 会调用相应的初始化方法。
4.销毁:当容器关闭时,Spring 容器会调用 DisposableBean 接口的销毁方法,或者配置了销毁方法的 Bean。
Bean 的作用域
pring 提供了不同的作用域来控制 Bean 的生命周期和可见性。常见的作用域有:
1.singleton(默认作用域):每个 Bean 在 Spring 容器中只有一个实例。
2.prototype:每次请求都会创建一个新的 Bean 实例。
3.request:每个 HTTP 请求都会创建一个新的 Bean 实例(适用于 Web 应用)。
4.session:每个 HTTP 会话都会创建一个新的 Bean 实例(适用于 Web 应用)。
5.globalSession:用于 Portlet 应用,每个全局 HTTP 会话都会创建一个新的 Bean 实例。
Spring集合注入
- 基于 XML 的集合注入
Spring 允许通过 XML 配置文件将集合注入到 Bean 中。使用集合注入时,Spring 会根据集合的类型将 Bean 的值注入到相应的集合中。
1.1 List 集合注入
<bean id="person" class="com.example.Person">
<property name="friends">
<list>
<ref bean="friend1"/>
<ref bean="friend2"/>
</list>
</property>
</bean>
1.2 Set 集合注入
<bean id="person" class="com.example.Person">
<property name="hobbies">
<set>
<value>Reading</value>
<value>Swimming</value>
<value>Traveling</value>
</set>
</property>
</bean>
在这个例子中,Person 类的 hobbies 属性是一个 Set 集合,Spring 会将多个 value 元素注入到 Set 集合中,确保元素的唯一性。
1.3 Map 集合注入
<bean id="person" class="com.example.Person">
<property name="contactInfo">
<map>
<entry key="email" value="person@example.com"/>
<entry key="phone" value="123-456-7890"/>
</map>
</property>
</bean>
在这个例子中,Person 类中的 contactInfo 属性是一个 Map,将 email 和 phone 键值对注入到 Map 中。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!