当前位置: 首页 > news >正文

SSM spring Bean实例化

 bean本质就是对象,创建bean使用构造方法完成

在 Spring 框架中,Bean 的实例化是 Spring 容器管理对象生命周期的第一步。Spring 容器负责创建 Bean 的实例,并将其组装成一个完整的应用程序。以下是关于 Bean 实例化的详细说明,包括其实例化的方式、过程以及相关的配置。

Bean 实例化的方式

Spring 提供了多种方式来实例化 Bean,主要包括以下几种:

1. 通过构造器实例化

Spring 容器可以通过类的构造器来创建 Bean 的实例。这是最常见的方式之一。

2. 通过工厂方法实例化

Spring 容器可以通过工厂方法来创建 Bean 的实例。工厂方法可以是静态方法,也可以是实例方法。

3. 通过 BeanPostProcessor 实例化

BeanPostProcessor 是 Spring 提供的一个接口,允许开发者在 Bean 实例化之后对其进行进一步的处理。虽然这不是直接的实例化方式,但它可以影响 Bean 的实例化过程。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!--方式一:构造方法实例化bean--><bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl"/><!--方式二:使用静态工厂实例化bean-->
<!--    <bean id="orderDao" class="com.itheima.factory.OrderDaoFactory" factory-method="getOrderDao"/>--><!--方式三:使用实例工厂实例化bean-->
<!--    <bean id="userFactory" class="com.itheima.factory.UserDaoFactory"/><bean id="userDao" factory-method="getUserDao" factory-bean="userFactory"/>--><!--方式四:使用FactoryBean实例化bean--><bean id="userDao" class="com.itheima.factory.UserDaoFactoryBean"/></beans>
package com.itheima.dao.impl;import com.itheima.dao.BookDao;public class BookDaoImpl implements BookDao {public BookDaoImpl() {System.out.println("book dao constructor is running ....");}public void save() {System.out.println("book dao save ...");}}

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!--方式一:构造方法实例化bean--><bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl"/><!--方式二:使用静态工厂实例化bean-->
<!--    <bean id="orderDao" class="com.itheima.factory.OrderDaoFactory" factory-method="getOrderDao"/>--><!--方式三:使用实例工厂实例化bean-->
<!--    <bean id="userFactory" class="com.itheima.factory.UserDaoFactory"/><bean id="userDao" factory-method="getUserDao" factory-bean="userFactory"/>--><!--方式四:使用FactoryBean实例化bean--><bean id="userDao" class="com.itheima.factory.UserDaoFactoryBean"/></beans>

Bean的生命周期:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!--init-method:设置bean初始化生命周期回调函数--><!--destroy-method:设置bean销毁生命周期回调函数,仅适用于单例对象--><bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl" init-method="init" destroy-method="destory"/><bean id="bookService" class="com.itheima.service.impl.BookServiceImpl"><property name="bookDao" ref="bookDao"/></bean></beans>
package com.itheima.dao.impl;import com.itheima.dao.BookDao;public class BookDaoImpl implements BookDao {public void save() {System.out.println("book dao save ...");}//表示bean初始化对应的操作public void init(){System.out.println("init...");}//表示bean销毁前对应的操作public void destory(){System.out.println("destory...");}}

相关文章:

  • matlab 2024a ​工具箱Aerospsce Toolbox报错​
  • 【力扣链表篇】19.删除链表的倒数第N个节点
  • 2025年06月07日Github流行趋势
  • Vue3 项目的基本架构解读
  • 2012-2023年 上市公司-知识重组创造、知识重组再利用数据-社科经管实证数据
  • 《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析LLP (二)
  • 备份还原打印机驱动
  • 数据库管理与高可用-MySQL高可用
  • Java基于SpringBoot的校园闲置物品交易系统,附源码+文档说明
  • 以智能管理为基础,楼宇自控打造建筑碳中和新路径
  • WebFuture 系统升级提示外键约束的问题处理
  • WebWorker-----高频面试题(浏览器篇)
  • 30、memory-order-relaxed
  • 从零开始开发纯血鸿蒙应用之网络检测
  • A Execllent Software Project Review and Solutions
  • 【物联网-ModBus-RTU
  • 【Go语言基础【14】】defer与异常处理(panic、recover)
  • 【HarmonyOS 5】拍摄美化开发实践介绍以及详细案例
  • 关于datetime获取时间的问题
  • n8n + AI Agent:AI 自动化生成测试用例并支持导出 Excel
  • 做网站需要购买地域名吗/怎样做好网络营销推广
  • 微信网站域名备案成功后怎么做/seo岗位有哪些
  • 宠物网站建设规划书/企业网站的类型
  • 做平面设计一般上哪个网站参考/网店运营与管理
  • wordpress扁平化登录页源码/女装标题优化关键词
  • 辽宁建设工程信息网场内业绩/宁波seo基础入门