Spring实例化Bean的三种方式
2013-04-22 19:09
447 查看
Spring实例化Bean的三种方式分别是:
1,xml配置使用bean的类构造器
2,xml配置+factory类,使用静态工厂方法实例化
3,xml配置+factory类,使用实例工厂方法实例化
以下分别说明
1,xml配置使用bean的类构造器
2,xml配置+factory类,使用静态工厂方法实例化
Spring实例化Bean 的xml文件配置
xml文件名:beans.xml
文件内容:
工厂Java文件
文件名:HelloBeanFactory.java
文件内容:
Bean接口文件
文件名:Hello.java
文件内容:
package test.service;
public interface Hello {
public void sayHello();
public void sayHello2();
public void sayHello3();
}
Bean实现文件
文件名:HelloBean.java
文件内容:
package test.service.impl;
import test.service.Hello;
public class HelloBean implements Hello {
public void sayHello() {
System.out.println("这是一个测试程序");
}
@Override
public void sayHello2() {
System.out.println("这是一个测试程序,测试静态工厂创建bean");
}
@Override
public void sayHello3() {
System.out.println("这是一个测试程序,测试实例工厂创建bean");
}
}
3,xml配置+factory类,使用实例工厂方法实例化
xml文件配置
xml文件名:beans.xml
文件内容:参照方法2中的红字部分
工厂Java文件
文件名:HelloBeanInstanceFactory.java
文件内容:
package test.service.impl;
import test.service.Hello;
public class HelloBeanInstanceFactory {
public Hello createHelloBean() {
return new HelloBean();
}
}
Bean接口文件
文件名:Hello.java
文件内容:参照方法2中的红字部分
Bean实现文件
文件名:HelloBean.java
文件内容:参照方法2中的红字部分
Spring实例化Bean完成,最后测试文件
文件名:FirstSpring.java
文件内容:
package test.spring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import test.service.Hello;
public class FirstSpring {
public static void main(String[] args) {
testHello();
testHelloForStaticFactory();
testHelloForInstanceFactory();
}
public static void testHello() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
Hello hello =(Hello) applicationContext.getBean("sayhello");
hello.sayHello();
}
public static void testHelloForStaticFactory() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
Hello hello =(Hello) applicationContext.getBean("sayhello2");
hello.sayHello2();
}
public static void testHelloForInstanceFactory() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
Hello hello =(Hello) applicationContext.getBean("sayhello3");
hello.sayHello3();
}
}
都写完了,来执行一下,结果输出:
这是一个测试程序
这是一个测试程序,测试静态工厂创建bean
这是一个测试程序,测试实例工厂创建bean
总结
三种Spring实例化Bean方法的用处,
第一种方法,通过bean的缺省构造函数创建,当各个bean的业务逻辑相互比较独立的时候或者和外界关联较少的时候可以使用。
第二种方法,利用静态factory方法创建,可以统一管理各个bean的创建,如各个bean在创建之前需要相同的初始化处理,则可用这个factory方法险进行统一的处理等等。
第三种方法,利用实例化factory方法创建,即将factory方法也作为了业务bean来控制,觉得1可用于集成其他框架的bean创建管理方法,2能够使bean和factory的角色互换。
原文来自:http://developer.51cto.com/art/200907/137884.htm
1,xml配置使用bean的类构造器
2,xml配置+factory类,使用静态工厂方法实例化
3,xml配置+factory类,使用实例工厂方法实例化
以下分别说明
1,xml配置使用bean的类构造器
2,xml配置+factory类,使用静态工厂方法实例化
Spring实例化Bean 的xml文件配置
xml文件名:beans.xml
文件内容:
﹤?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-2.5.xsd"﹥ ﹤!-- the application context definition for the springapp DispatcherServlet --﹥ ﹤bean id="sayhello" class="test.service.impl.HelloBean"/﹥ ﹤bean id="sayhello2" class="test.service.impl.HelloBeanFactory" factory-method="createHelloBean"/﹥ ﹤bean id="factory" class="test.service.impl.HelloBeanInstanceFactory"/﹥ ﹤bean id="sayhello3" factory-bean="factory" factory-method="createHelloBean"/﹥ ﹤/beans﹥
工厂Java文件
文件名:HelloBeanFactory.java
文件内容:
package test.service.impl; import test.service.Hello; public class HelloBeanFactory { public static Hello createHelloBean() { return new HelloBean(); } }
Bean接口文件
文件名:Hello.java
文件内容:
package test.service;
public interface Hello {
public void sayHello();
public void sayHello2();
public void sayHello3();
}
Bean实现文件
文件名:HelloBean.java
文件内容:
package test.service.impl;
import test.service.Hello;
public class HelloBean implements Hello {
public void sayHello() {
System.out.println("这是一个测试程序");
}
@Override
public void sayHello2() {
System.out.println("这是一个测试程序,测试静态工厂创建bean");
}
@Override
public void sayHello3() {
System.out.println("这是一个测试程序,测试实例工厂创建bean");
}
}
3,xml配置+factory类,使用实例工厂方法实例化
xml文件配置
xml文件名:beans.xml
文件内容:参照方法2中的红字部分
工厂Java文件
文件名:HelloBeanInstanceFactory.java
文件内容:
package test.service.impl;
import test.service.Hello;
public class HelloBeanInstanceFactory {
public Hello createHelloBean() {
return new HelloBean();
}
}
Bean接口文件
文件名:Hello.java
文件内容:参照方法2中的红字部分
Bean实现文件
文件名:HelloBean.java
文件内容:参照方法2中的红字部分
Spring实例化Bean完成,最后测试文件
文件名:FirstSpring.java
文件内容:
package test.spring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import test.service.Hello;
public class FirstSpring {
public static void main(String[] args) {
testHello();
testHelloForStaticFactory();
testHelloForInstanceFactory();
}
public static void testHello() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
Hello hello =(Hello) applicationContext.getBean("sayhello");
hello.sayHello();
}
public static void testHelloForStaticFactory() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
Hello hello =(Hello) applicationContext.getBean("sayhello2");
hello.sayHello2();
}
public static void testHelloForInstanceFactory() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
Hello hello =(Hello) applicationContext.getBean("sayhello3");
hello.sayHello3();
}
}
都写完了,来执行一下,结果输出:
这是一个测试程序
这是一个测试程序,测试静态工厂创建bean
这是一个测试程序,测试实例工厂创建bean
总结
三种Spring实例化Bean方法的用处,
第一种方法,通过bean的缺省构造函数创建,当各个bean的业务逻辑相互比较独立的时候或者和外界关联较少的时候可以使用。
第二种方法,利用静态factory方法创建,可以统一管理各个bean的创建,如各个bean在创建之前需要相同的初始化处理,则可用这个factory方法险进行统一的处理等等。
第三种方法,利用实例化factory方法创建,即将factory方法也作为了业务bean来控制,觉得1可用于集成其他框架的bean创建管理方法,2能够使bean和factory的角色互换。
原文来自:http://developer.51cto.com/art/200907/137884.htm
相关文章推荐
- Spring的三种实例化Bean的方式
- spring基础----->实例化bean的三种方式
- spring的三种实例化bean的方式
- Spring中bean的三种实例化方式的简单实例
- Spring的三种实例化Bean的方式
- spring实例化bean的三种方式
- spring实例化bean的三种方式
- spring中三种实例化bean的方式
- Spring的三种实例化Bean的方式
- Spring实例化Bean的三种方式及Bean的类型
- Spring系列:第三篇-Spring容器三种实例化bean的方式以及Bean的作用域
- Spring学习笔记——Spring实例化Bean的三种方式
- spring2.5.6学习笔记五:Spring的三种实例化Bean的方式
- spring中三种实例化bean的方式
- Spring学习笔记(二)Spring的三种实例化Bean的方式
- Spring的三种实例化Bean的方式
- (2)Spring的三种实例 bean 的方式 以及 Spring中bean的作用域。 以及 bean的生命周期
- (转)Spring的三种实例化Bean的方式
- 创建Bean的三种方式 在大多数情况下,Spring容器直接通过new关键字调用构造器来创建Bean实例,而class属性指定Bean实例的实现类,但这不是实例化Bean的唯一方法。实际上,Sprin
- Spring实例化Bean的三种方式及Bean的类型(activiti实战)