实例工厂实例化Bean走一波~

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
简介: 实例工厂实例化Bean就是直接创建Bean实例。在XML配置文件中,不使用class属性直接指向bean实例所属的类,而是通过factory-bean属性指向Bean配置的实例化工厂,并且使用factory-method属性指定要调用的实例工厂中的方法。

实例工厂实例化Bean就是直接创建Bean实例。在XML配置文件中,不使用class属性直接指向bean实例所属的类,而是通过factory-bean属性指向Bean配置的实例化工厂,并且使用factory-method属性指定要调用的实例工厂中的方法。

1 创建类Car(和上文一样)

package com.lq.entities;
/**
 * @Author: Luqing Teacher
 * @CreateTime: 2024-12-17
 * @Description: 汽车类
 * @Version: 1.0
 */
public class Car {
    public Car() {
        System.out.println("这是Car类");
    }
}

2 创建实例工厂

package com.lq.Factory;
import com.lq.entities.Car;
/**
 * @Author: Luqing Teacher
 * @CreateTime: 2024-12-20
 * @Description: 实例工厂
 * @Version: 1.0
 */
public class MyCarFactory2 {
    public MyCarFactory2() {
        System.out.println("工厂实例化中...");
    }
    public Car createCar()
    {
        return new Car();
    }
}

3 配置文件(仔细查看与上文中的不同)

<?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 id="myCarFactory2" class="com.lq.Factory.MyCarFactory2" />
    <bean id="car" factory-bean="myCarFactory2" factory-method="createCar" />
</beans>

4 测试类测试

package com.lq.test;
import com.lq.entities.Car;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
 * @Author: Luqing Teacher
 * @CreateTime: 2024-12-20
 * @Description: test
 * @Version: 1.0
 */
public class TestCar2 {
    public static void main(String[] args) {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext-car.xml");
        Car car = applicationContext.getBean("car", Car.class);
        System.out.println(car);
    }
}

结果如下

工厂实例化中...
这是Car类
com.lq.entities.Car@73ad2d6
进程已结束,退出代码0
相关文章
|
Java Spring
Spring Boot3整合knife4j(swagger3)
Spring Boot3整合knife4j(swagger3)
3166 1
|
应用服务中间件 nginx
流媒体技术学习笔记之(十四)FFmpeg进行笔记本摄像头+麦克风实现流媒体直播服务
FFmpeg推送视频流,Nginx RTMP模块转发,VLC播放器播放,实现整个RTMP直播 查看本机电脑的设备 ffmpeg -list_devices true -f dshow -i dummy 红色标记表示视频设备和麦克风设备 看到乱码了吧!来这里查看哦   FFmpeg编码推送到R...
3802 0
|
8月前
|
人工智能 弹性计算 运维
操作系统控制台体验测评
操作系统管理平台是一个智能服务器管家,提供便捷易用的可视化操作界面,帮助用户高效管理操作系统。它具备运维管理、智能助手、扩展组件管理等功能,提升操作系统使用效率和体验。首次使用需开通服务并准备兼容的操作系统ECS实例(如Alibaba Cloud Linux、CentOS等),通过安装管控组件实现纳管。平台提供系统健康监测、诊断、观测及订阅服务等功能,确保集群和主机的稳定运行,并为用户提供专业指导和优化建议。智能助手功能则实现了集群多主机的自动化管理及实时技术问答支持。
351 64
|
7月前
|
数据采集 算法 前端开发
社交媒体分析:破解无限滚动的技术实践
本方案介绍了一种高效的数据采集技术,涵盖技术演化路径、传统痛点解决及架构设计。通过代理IP轮换、请求指纹管理与滚动加载模拟等核心模块,大幅提升请求成功率(98%)和数据完整率(91%),显著降低封禁概率(3.2%)。实战代码以微博热搜为例,展示如何结合动态User-Agent、Cookie管理与三级校验机制实现稳定采集。行业应用表明,该方案可将采集效率提升3.8倍,封禁率降至0.7次/日,助力热点事件早期捕捉。适配大规模任务需求,同时注重流量控制与异常处理,确保稳定性与安全性。
141 7
社交媒体分析:破解无限滚动的技术实践
|
11月前
|
机器学习/深度学习 编解码 异构计算
4090笔记本0.37秒直出大片!英伟达联手MIT清华祭出Sana架构,速度秒杀FLUX
英伟达、麻省理工学院与清华大学联合发布Sana,一款高效文本到图像生成框架。Sana通过深度压缩自编码器和线性注意力机制,实现快速高分辨率图像生成,生成1024×1024图像仅需不到1秒。此外,Sana采用解码器专用文本编码器增强文本与图像对齐度,大幅提高生成质量和效率。相比现有模型,Sana体积更小、速度更快,适用于多种设备。
224 7
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
大模型引领6G革命!最新综述探索未来通信方式:九大方向,覆盖多模态、RAG等
随着科技发展,大模型在6G网络中展现出革命性潜力。近日,arXiv发布综述论文《大模型在电信领域的全面调查》,探讨了大模型在通信领域的应用,涵盖生成、分类、优化、预测等方向,同时指出了数据隐私、计算资源及模型可解释性等挑战。论文链接:https://arxiv.org/abs/2405.10825
351 5
|
关系型数据库 分布式数据库 数据库
2024年全国大学生计算机系统能力大赛PolarDB数据库创新设计赛(天池杯)等你来战!
2024年全国大学生计算机系统能力大赛PolarDB数据库创新设计赛(天池杯)等你来战!
711 15
2024年全国大学生计算机系统能力大赛PolarDB数据库创新设计赛(天池杯)等你来战!
|
文字识别 API
印刷文字识别操作报错合集之遇到“unmatchedImageType”错误,该如何解决
在使用印刷文字识别(OCR)服务时,可能会遇到各种错误。例如:1.Java异常、2.配置文件错误、3.服务未开通、4.HTTP错误码、5.权限问题(403 Forbidden)、6.调用拒绝(Refused)、7.智能纠错问题、8.图片质量或格式问题,以下是一些常见错误及其可能的原因和解决方案的合集。
|
消息中间件 监控 Java
使用Java构建微服务架构的最佳实践
使用Java构建微服务架构的最佳实践