内容来自传智博客视频
Spring 的bean的实例化方式:
1.使用类的无参构造创建bean实例
2.使用静态工厂创建
3.使用实例工厂创建
1.需要的jar包和配置文件:
2.spring的配置文件bean1.xml,通过该文件来创建对象,也就是控制翻转(IOC)
<?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="user1" class="ioc.User"></bean>
<!-- 使用静态工厂创建对象 -->
<bean id="beanStatic" class="bean.BeanStaticFactory" factory-method="getBean2"></bean>
<!-- 使用实例工厂创建对象 -->
<!-- 创建工厂对象 -->
<!-- 第15行的id和第16行的factory-bean是关联在一起的 -->
<bean id="beanInstanceFactory1" class="bean.BeanInstanceFactory"></bean>
<bean id="beanInstance" factory-bean="beanInstanceFactory1" factory-method="getBean3"></bean>
</beans>
3.JUnit测试类
package ioc;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import bean.BeanStatic;
import bean.BeanInstance;
public class TestIOC {
@Test
public void testUser(){
//1.加载spring配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
//2.得到配置文件的创建对象
User user = (User)context.getBean("user1");
user.add();
BeanStatic beanStatic = (BeanStatic)context.getBean("beanStatic");
beanStatic.add();
BeanInstance beanInstance = (BeanInstance)context.getBean("beanInstance");
beanInstance.add();
}
}
4.通过无参构造方法创建bean实例
package ioc;
public class User {
private String userName;
public User(String userName){
this.userName = userName;
}
public User(){
}
public void add(){
System.out.println("user add...........");
}
}
5.bean对象(对应实例工厂)
package bean;
public class BeanInstance {
public void add(){
System.out.println("beanInstance.............");
}
}
6.使用实例工厂创建bean实例
package bean;
public class BeanInstanceFactory {
public BeanInstance getBean3(){
return new BeanInstance();
}
}
7.bean对象(对应静态工厂)
package bean;
public class BeanStatic {
public void add() {
System.out.println("beanStatic.............");
}
}
8.使用静态工厂创建bean实例
package bean;
public class BeanStaticFactory {
public static BeanStatic getBean2(){
return new BeanStatic();
}
}