bean实例化方式

xiaoxiao2021-02-28  100

静态工厂

1工厂

package com.itheima.c_inject.b_static_factory; public class MyBeanFactory { /* * 创建实例 * */ public static UserService createService(){ return new UserServiceImpl() ; } }

2spring配置

<!-- bean definitions here --> <!-- 将静态工厂创建的实例交给spring class: 确定静态工厂全限定类名 factory-method:确定静态方法名 --> <bean id= "userServiceId" class = "com.itheima.c_inject.b_static_factory.MyBeanFactory" factory-method="createService"></bean> 3测试

@Test public void demo02(){ //spring 工厂 System.out.println("******"); String xmlPath = "com/itheima/c_inject/b_static_factory/beans.xml"; ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath); UserService userService = applicationContext.getBean("userServiceId" ,UserService.class); userService.addUser(); }

实例工厂

1工厂 package com.itheima.c_inject.c_factory; public class MyBeanFactory { /* * 创建实例 * */ public UserService createService(){ //非静态 return new UserServiceImpl() ; } } 2配置文件 <!-- bean definitions here --> <!-- 创建工厂实例 --> <bean id = "myBeanFactoryId" class = "com.itheima.c_inject.c_factory.MyBeanFactory"></bean> <!-- 获得userService factory-bean 确定工厂实例 factory-method 确定普通方法 --> <bean id = "userServiceId" factory-bean="myBeanFactoryId" factory-method="createService"></bean> 3测试 @Test public void demo02(){ //spring 工厂 System.out.println("******"); String xmlPath = "com/itheima/c_inject/c_factory/beans.xml"; ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath); UserService userService = applicationContext.getBean("userServiceId" ,UserService.class); userService.addUser(); }
转载请注明原文地址: https://www.6miu.com/read-49819.html

最新回复(0)