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

简介: 实例工厂实例化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
相关文章
|
SQL Java 数据库
Spring Boot 的事务控制及示例代码
Spring Boot 提供了简单易用的事务控制功能,方便开发者进行数据库操作时保证数据的一致性和完整性。本文将介绍 Spring Boot 事务控制的用法和应用场景,并提供丰富的例子。
650 2
|
XML Java 数据格式
SpringBean的生命周期
SpringBean的生命周期
385 0
|
应用服务中间件 nginx
流媒体技术学习笔记之(十四)FFmpeg进行笔记本摄像头+麦克风实现流媒体直播服务
FFmpeg推送视频流,Nginx RTMP模块转发,VLC播放器播放,实现整个RTMP直播 查看本机电脑的设备 ffmpeg -list_devices true -f dshow -i dummy 红色标记表示视频设备和麦克风设备 看到乱码了吧!来这里查看哦   FFmpeg编码推送到R...
3988 0
|
算法 Linux 调度
深入理解操作系统中的进程调度
【9月更文挑战第28天】在操作系统的复杂世界中,进程调度是维持系统高效运作的关键。本文将深入浅出地探讨进程调度的核心概念及其对系统性能的影响。从进程调度的定义和目标出发,逐步解析不同类型的调度算法,并通过实际代码示例,揭示这些算法如何在真实系统中实施。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和知识。
|
供应链 安全 物联网
物联网(IoT)安全:风险与防护策略
【6月更文挑战第26天】物联网(IoT)安全风险包括数据泄露、设备劫持、DDoS攻击、超级漏洞和不安全设备。防护策略涉及强化设备安全设计、建立认证授权机制、加密数据传输、实施安全监控、加强供应链管理、提升用户安全意识及采用零信任模型。多层面合作以降低安全威胁,确保物联网稳定安全。
1450 2
|
消息中间件 监控 Java
使用Java构建微服务架构的最佳实践
使用Java构建微服务架构的最佳实践
|
存储 监控 数据挖掘
0028Java程序设计-智能农场监控报警系统设计与实现
0028Java程序设计-智能农场监控报警系统设计与实现
234 0
0028Java程序设计-智能农场监控报警系统设计与实现
|
XML Java 应用服务中间件
总在说SpringBoot内置了tomcat启动,那它的原理你说的清楚吗
总在说SpringBoot内置了tomcat启动,那它的原理你说的清楚吗
302 0
|
架构师 算法 测试技术
嵌入式系统软件架构设计(长篇深度好文)
嵌入式系统软件架构设计(长篇深度好文)
8936 2
|
XML Java Maven
IDEA创建Spring项目时没有Spring Config的XML文件
IDEA创建Spring项目时没有Spring Config的XML文件
1268 0