所谓装配bean【对象】,就是在xml中写一个bean标签。
一、实例化Bean的三种方式(一)—— 使用构造方法实例化
二、实例化Bean的三种方式(二)—— 使用静态工法方法实例化
1. java代码实现静态工厂的方法
UserServiceFactory1.java
1 package com.gyf.service; 2 3 public class UserServiceFactory1 { 4 5 public static IUserService createUserService(){ 6 return new UserServiceImpl(); 7 } 8 }
Lesson03.java
1 package com.gyf.test; 2 3 import com.gyf.service.IUserService; 4 import com.gyf.service.UserServiceFactory1; 5 6 import org.junit.Test; 7 import org.springframework.context.ApplicationContext; 8 import org.springframework.context.support.ClassPathXmlApplicationContext; 9 10 /** 11 * 装配bean的三种方式 12 */ 13 public class Lesson03 { 14 15 @Test 16 public void test2(){ 17 /** 18 * 静态工厂 19 */ 20 IUserService userservice2 = UserServiceFactory1.createUserService(); 21 userservice2.add(); 22 } 23 }
2. Spring的方式实现静态工厂
beans3.xml
1 <!-- 第二种方式:通过静态工厂方法--> 2 <bean id="userService2" class="com.gyf.service.UserServiceFactory1" factory-method="createUserService"></bean>
Lesson03.java
1 package com.gyf.test; 2 3 import com.gyf.service.IUserService; 4 import com.gyf.service.UserServiceFactory1; 5 6 import org.junit.Test; 7 import org.springframework.context.ApplicationContext; 8 import org.springframework.context.support.ClassPathXmlApplicationContext; 9 10 /** 11 * 装配bean的三种方式 12 */ 13 public class Lesson03 { 14 @Test 15 public void test3(){ 16 17 /** 18 * 装配bean的第二种方式:使用静态工厂方法实例化 19 * 20 */ 21 ApplicationContext context = new ClassPathXmlApplicationContext("beans3.xml"); 22 IUserService userService3 = (IUserService) context.getBean("userService2"); 23 userService3.add(); 24 } 25 }
三、实例化Bean的三种方式(三)—— 使用实例工厂方法实例化
1. 使用java代码的实例工厂方法实例化bean
UserServiceFactory2.java
1 package com.gyf.service; 2 3 public class UserServiceFactory2 { 4 public IUserService createUserService(){ 5 return new UserServiceImpl(); 6 } 7 }
Lesson03.java
1 package com.gyf.test; 2 3 import com.gyf.service.IUserService; 4 import com.gyf.service.UserServiceFactory1; 5 import com.gyf.service.UserServiceFactory2; 6 7 import org.junit.Test; 8 import org.springframework.context.ApplicationContext; 9 import org.springframework.context.support.ClassPathXmlApplicationContext; 10 11 /** 12 * 装配bean的三种方式 13 */ 14 public class Lesson03 { 15 16 @Test 17 public void test4(){ 18 /** 19 * 实例化工厂 20 */ 21 UserServiceFactory2 factory = new UserServiceFactory2(); 22 IUserService userService4 = factory.createUserService(); 23 userService4.add(); 24 } 25 }
2. 使用 Spring框架的实例化工厂方法,实例化bean
beans.xml
1 <!--第三种方式:通过实例化工厂方法--> 2 <!--创建实例factory2 bean--> 3 <bean id="factory2" class="com.gyf.service.UserServiceFactory2"></bean> 4 <!--创建实例userService3 bean--> 5 <bean id="userService3" factory-bean="factory2" factory-method="createUserService"></bean>
Lesson03.java
1 @Test 2 public void test5(){ 3 /** 4 * 装配bean的第三种方式:使用实例化工厂方法实例化 5 */ 6 ApplicationContext context = new ClassPathXmlApplicationContext("beans3.xml"); 7 IUserService userService5 = (IUserService) context.getBean("userService3"); 8 userService5.add(); 9 }