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

SSM框架学习——day3

 

构造方法实例化

通过类的构造方法直接创建Bean实例,这是Spring容器默认的实例化方式。需要在XML配置中指定类名,容器会调用无参构造方法创建对象。此方式适用于简单对象创建,无需复杂初始化逻辑。

<bean id="exampleBean" class="com.example.ExampleBean"/>

静态工厂方法实例化

通过指定工厂类的静态方法创建Bean实例。适用于需要统一管理对象创建逻辑的场景(如单例模式)。静态工厂类无需实例化,直接通过类名调用方法。

<bean id="clientService" class="com.example.ClientService" factory-method="createInstance"/>

对应的工厂类需包含静态方法:

public class ClientService {private static ClientService instance = new ClientService();public static ClientService createInstance() {return instance;}
}

FactoryBean接口实例化

通过实现FactoryBean接口自定义复杂对象的创建逻辑。FactoryBean本身是一个Bean,但其getObject()方法返回的目标对象才是实际注入的Bean。适用于创建第三方库对象或具有复杂依赖的实例。

<bean id="toolFactory" class="com.example.ToolFactoryBean"/>

实现FactoryBean的示例:

public class ToolFactoryBean implements FactoryBean<Tool> {@Overridepublic Tool getObject() throws Exception {return new SpecialTool(); // 返回实际需要的对象}@Overridepublic Class<?> getObjectType() {return Tool.class;}
}

getObject() 方法定义了实际返回的 bean 实例。在这个例子中,每次调用都会创建一个新的 SpecialTool 实例。

getObjectType() 方法返回工厂创建的对象的类型。这里返回的是 Tool.class,表示这个工厂创建的是 Tool 类型的对象。

核心区别

  • 构造方法:直接调用目标类构造器,适合简单无参对象。
  • 静态工厂:解耦对象创建逻辑,隐藏实现细节,支持单例等模式。
  • FactoryBean:提供更灵活的实例化流程,可封装复杂初始化(如数据库连接池)。

静态工厂与FactoryBean的关键差异在于,前者通过类方法返回实例,后者通过接口实现,且FactoryBean本身可被Spring容器管理。

 

 静态工厂的构造方式一般为了兼容老款的项目

factorybean方法:

 

 

 

 

http://www.lryc.cn/news/589955.html

相关文章:

  • 二代身份证识别技术的发展:从机器学习到深度学习
  • RocketMQ性能优化实战指南:原理与实践
  • WebSocket 防护的重要性及应对策略:从原理到实战
  • Java 二维数组详解:从基础语法到实战应用,彻底掌握多维数据结构
  • Cursor 接入api中转平台流程
  • es 启动中的一些记录
  • 【Deepseek-R1+阿里千问大模型】四步完成本地调用本地部署大模型和线上大模型,实现可视化使用
  • web前端用MVP模式搭建项目
  • 外网访问禅道软件项目管理系统,简单几步将本地内网IP端口设置互联网在线用
  • 第3章 Excel表格格式设置技巧
  • Node.js:创建第一个应用
  • 重塑旧物价值,引领绿色潮流——二手回收小程序系统开发纪实
  • 小程序中状态管理Redux
  • 【uni-ui】hbuilderx的uniapp 配置 -小程序左滑出现删除等功能
  • 【官方回复】七牛云开启referer防掉链后小程序访问七牛云图片显示403
  • JAVA AI+elasticsearch向量存储版本匹配
  • 2025年应用力学、机械工程与能源国际会议(AMMEE 2025)
  • Python设计模式深度解析:单例模式(Singleton Pattern)完全指南
  • 从0到1开发网页版五子棋:我的Java实战之旅
  • Liunx练习项目6-创建dns服务器
  • 自动控制原理知识地图:舵轮、路径与导航图
  • Linux权限管理:玩转root与用户组
  • CoreNext主题源码 V1.7.1开心版 WordPress轻量高性能主题
  • TCP 三次握手与四次挥手笔记
  • ZYNQ Petalinux系统FLASH固化终极指南:创新多分区与双系统切换实战
  • 人工智能之数学基础:神经网络之多样本矩阵参数求导
  • 【深度学习】神经网络-part2
  • linux中查看那些端口正在被使用
  • Linux运维新手的修炼手扎之第21天
  • PXE实现Ubuntu,rockylinux,almalinux全自动安装