当前位置: 首页 > 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.dtcms.com/a/282260.html

相关文章:

  • 如何解决WordPress数据库表损坏导致的错误
  • Python 测试全景:单元测试、集成测试与端到端测试实战指南
  • 【收银系统源码】-适用于零售餐饮连锁多门店
  • Docker化Web服务部署全景指南:从基础服务器到企业级应用
  • VUE指令大全
  • 使用Node搭建一个直播服务器,实时直播当前桌面
  • WAMP允许远程访问
  • WAN技术
  • 基于 Python/PHP/Node.js 的淘宝 API 商品数据抓取开发教程
  • 高德mcp结合智能体生成旅游计划推荐
  • Typecho插件开发:自定义表单验证规则addRule实战指南
  • 20250716|【继续19的快慢指针】Leetcodehot100之237【pass】今天计划
  • python--杂识--20 sse与websocket区别
  • 【RTSP从零实践】13、TCP传输AAC格式RTP包(RTP_over_TCP)的RTSP服务器(附带源码)
  • 算法学习笔记:25.回溯算法之迷宫寻路——从原理到实战,涵盖 LeetCode 与考研 408 例题
  • lazyvim恢复gt键
  • Redis 之数据过期策略
  • 机动车检测站授权签字人报考指南
  • (数据结构)复杂度
  • 快速掌握 Kafka:从核心概念到生产级部署指南
  • Kafka 与 RocketMQ 消息确认机制对比分析
  • MCU进入低功耗模式前的引脚处理原则和方法 --> 以最小化低功耗电流
  • 编译原理第四到五章(知识点学习/期末复习/笔试/面试)
  • MySQL 配置性能优化赛:用创意配置解锁性能潜能
  • 创建第二大脑的关键还是方法
  • 网络爬虫的相关知识和操作
  • AQS(AbstractQueuedSynchronizer)抽象队列同步器
  • 第十八节:第二部分:java高级:反射-获取构造器对象并使用
  • AI产品经理面试宝典第23天:AI赋能商业服务相关面试题与解答指导
  • vue的provide和inject