1.构造方法实例化
2.静态工厂实例化
3.实例工厂实例化
1.构造方法实例化
首先创建对象类(BeanClass类)
创建
package Instance;
public class BeanClass {
public String message;
public BeanClass(){
message="构造方法实例化Bean";
}
public BeanClass(String s){
message=s;
}
}
创建配置文件
在其中加入bean标签,如图
其中id为自定义
创建测试类
package Test;
import Instance.BeanClass;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestInstance {
public static void main(String[] args) {
ApplicationContext appCon=new ClassPathXmlApplicationContext("applicationContent.xml");
BeanClass b1=(BeanClass)appCon.getBean("constructorInstance");
System.out.println(b1+b1.message);
}
}
测试结果
2.静态工厂实例化
创建工厂类(BeanStaticFactory)
package Instance;
public class BeanStaticFactory {
private static BeanClass beanInstance=new BeanClass("调用静态工厂方法");
public static BeanClass createInstance(){
return beanInstance;
}
}
配置文件
<?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="constructorInstance" class="Instance.BeanStaticFactory"
factory-method="createInstance"/>
</beans>
与构造方法想比,静态方法中,多了
creatInstance为方法名
创建测试类
package Test;
import Instance.BeanClass;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestInstance {
public static void main(String[] args) {
ApplicationContext appCon=new ClassPathXmlApplicationContext("applicationContent.xml");
BeanClass b1=(BeanClass)appCon.getBean("constructorInstance");
System.out.println(b1+b1.message);
}
}
测试结果
3.实例工厂实例化
创建工厂类BeanInstanceFactory
package Instance;
public class BeanInstanceFactory {
public BeanClass createBeanClassInstance(){
return new BeanClass("调用实例工厂方法实例化Bean");
}
}
配置文件
<?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="myFactory" class="Instance.BeanInstanceFactory"/>
<bean id="constructorInstance" factory-bean="myFactory" factory-method="createBeanClassInstance"/>
</beans>
使用了两个bean标签
第一个bean标签用来配置工厂
测试结果
意义:bean定义描述了如何创建一个或多个对象实例,
当需要的时候,容器会从bean定义列表中取得一个指定的bean定义,并
根据bean定义里面的配置元数据使用反射机制来创建一个实际的对象。