spring配置文件Bean实例化的三种方式

it2026-08-25  5

1、无参构造方法实例化

2、工厂静态方法实例化

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="UserDao" class="com.hkf.impl.UserDaoIpml"></bean>--> <!--<bean id="UserDao" class="com.hkf.impl.UserDaoIpml" scope="singleton"></bean>--> <!-- <bean id="UserDao" class="com.hkf.impl.UserDaoIpml" init-method="init" destroy-method="destroy"></bean>--> <!--工厂的静态实例化Bean--> <!-- <bean id="UserDao" class="com.hkf.fatory.StaticFactory" factory-method="getUserDao"></bean>--> <!--工厂的动态实例化Bean--> <bean id="factory" class="com.hkf.fatory.DynamicleFactory"></bean> <bean id="UserDao" factory-bean="factory" factory-method="getUserDao"></bean> </beans>

2、项目结构

3、工厂静态实例化Bean

public class StaticFactory { // 工厂的静态方法实例化Bean public static UserDao getUserDao(){ return new UserDaoIpml(); } }

 4、工厂动态实例化Bean

public class DynamicleFactory { // 工厂的动态实例化Bean public UserDao getUserDao(){ return new UserDaoIpml(); } }

5、测试结果

public class TestSpring { @Test public void test1(){ ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("springContext.xml"); UserDao userDao = (UserDao) classPathXmlApplicationContext.getBean("UserDao"); UserDao userDao1 = (UserDao) classPathXmlApplicationContext.getBean("UserDao"); classPathXmlApplicationContext.close(); System.out.println(userDao); System.out.println(userDao1); }

 

最新回复(0)