SpringBeanFactory的开发步骤:

1.导入依赖
因为Bean Factory是Spring提供的,所以我们需要提供依赖
XML
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.7</version>
</dependency>
</dependencies>

2.创建一个bean
创建UserService和它的实现类UserServiceImpl

3.编写配置文件
在resource目录下创建bean.xml
id是bean对象的名字
class是实现类的全类名
XML
<?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="userService" class="com.qcby.service.impl.UserServiceImpl"></bean>
</beans>
4.编写测试代码
创建测试类BeanTest:
java
package com.qcby;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
import org.springframework.core.io.ClassPathResource;
public class BeanTest {
public static void main(String[] args) {
//创建工厂对象
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
//创建一个读取器
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory);
//读取器绑定工厂
reader.loadBeanDefinitions(new ClassPathResource("bean.xml"));
//根据id获取bean示例对象
Object userService=beanFactory.getBean("userService");
System.out.println(userService);
}
}
运行,打印了地址,说明工厂帮我们创建了实例对象

5.依赖注入
1.创建UserDao接口和实现类UserDaoImpl

2.在UserServiceImpl里面写set方法
java
package com.qcby.service.impl;
import com.qcby.dao.UserDao;
import com.qcby.service.UserService;
public class UserServiceImpl implements UserService {
public void setUserDao(UserDao userDao) {
System.out.println("UserDao被创建:"+userDao);
}
}
3.配置文件
配置UserDao的Bean和UserServiceImpl的属性:
XML
<?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="userService" class="com.qcby.service.impl.UserServiceImpl">
<!--name是方法setXXX里面的XXX ref是去容器里面找什么bean-->
<property name="userDao" ref="userDao"></property>
</bean>
<bean id="userDao" class="com.qcby.dao.Impl.UserDaoImpl"></bean>
</beans>
4.运行

核心组件
Spring IoC 容器相关类
DefaultListableBeanFactory:Spring 的核心 Bean 工厂,负责创建和管理 Bean 实例。
XmlBeanDefinitionReader:用于读取 XML 格式的 Bean 配置文件,并将配置信息加载到 Bean 工厂中。
ClassPathResource:指定 XML 配置文件的路径。
执行流程
创建DefaultListableBeanFactory实例(Bean 工厂)。
创建XmlBeanDefinitionReader并绑定到 Bean 工厂,用于读取 XML 配置。
通过读取器加载bean.xml配置,将userDao和userService的 Bean 定义注册到工厂中。
从工厂中获取 id 为userService的 Bean 实例。
打印userService实例(默认输出对象的类名和哈希码)。