Spring创建对象的三种方式以及创建时间
2016-04-04 22:27
796 查看
创建对象的三种方式:
1、采用默认的构造函数创建
2、采用静态工厂方法
1、写一个静态工厂方法类
public class HelloWorldFactory {
public static HelloWorld getInstance(){
return new HelloWorld();
}
}
2、在spring的配置文件中进行声明
<bean id="helloWorld2" class="com.itheima05.spring.bean.HelloWorldFactory"
factory-method="getInstance"></bean>
告诉spring容器利用HelloWorldFactory类中的getInsatance静态方法产生对象
但是具体的对象的创建的过程是由程序员来完成的
3、实例工厂方法
1、写一个实例工厂类
public class HelloWorldFactory {
public HelloWorld getInstance(){
return new HelloWorld();
}
}
2、在spring的配置文件中
1、<bean id="helloWorld3" class="com.itheima05.spring.bean.HelloWorldFactory2"></bean>
spring容器为HelloWorldFactory2创建对象
2、<bean id="helloWorldFactory" factory-bean="helloWorld3" factory-method="getInstance"></bean>
告诉spring容器,利用helloWorld3对象调用getInstance方法
创建对象的时机
1、在默认的情况下,在spring容器启动的时候创建对象
在spring配置文件中,只要根据以上的三种方式的其中一种配置了,spring容器就会创建对象
好处:spring容器和web容器整合的时候,当web容器启动的时候就可以初始化spring容器了,如果这个时候
spring容器内部有错误,则直接会报错
如果该bean中存放着大量的数据,而且数据的初始化发生在创建对象的时候,这个时候,数据会过早的驻留在内存中
2、如果在spring的配置文件中一个bean的配置中有lazy-init="true",那么该bean在调用getBean方法时创建对象
不好处:不能过早的发现错误
好处:按照需求加载数据(什么时候要什么时候加载)
1、采用默认的构造函数创建
2、采用静态工厂方法
1、写一个静态工厂方法类
public class HelloWorldFactory {
public static HelloWorld getInstance(){
return new HelloWorld();
}
}
2、在spring的配置文件中进行声明
<bean id="helloWorld2" class="com.itheima05.spring.bean.HelloWorldFactory"
factory-method="getInstance"></bean>
告诉spring容器利用HelloWorldFactory类中的getInsatance静态方法产生对象
但是具体的对象的创建的过程是由程序员来完成的
3、实例工厂方法
1、写一个实例工厂类
public class HelloWorldFactory {
public HelloWorld getInstance(){
return new HelloWorld();
}
}
2、在spring的配置文件中
1、<bean id="helloWorld3" class="com.itheima05.spring.bean.HelloWorldFactory2"></bean>
spring容器为HelloWorldFactory2创建对象
2、<bean id="helloWorldFactory" factory-bean="helloWorld3" factory-method="getInstance"></bean>
告诉spring容器,利用helloWorld3对象调用getInstance方法
创建对象的时机
1、在默认的情况下,在spring容器启动的时候创建对象
在spring配置文件中,只要根据以上的三种方式的其中一种配置了,spring容器就会创建对象
好处:spring容器和web容器整合的时候,当web容器启动的时候就可以初始化spring容器了,如果这个时候
spring容器内部有错误,则直接会报错
如果该bean中存放着大量的数据,而且数据的初始化发生在创建对象的时候,这个时候,数据会过早的驻留在内存中
2、如果在spring的配置文件中一个bean的配置中有lazy-init="true",那么该bean在调用getBean方法时创建对象
不好处:不能过早的发现错误
好处:按照需求加载数据(什么时候要什么时候加载)
相关文章推荐
- Java基于IBMMQ消息的发布与订阅
- 【LeetCode-23】Merge k Sorted Lists
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- Java总结篇系列:Java泛型
- Spring MVC 学习
- Java中Static调用问题
- Java调用 lpsolve
- Java高效读取大文件
- java中try{}catch{}和finally{}的执行顺序问题
- Java web编程篇
- Java中如何把两个数组合并为一个
- 服务端发送xml请求java代码示例
- 学习:java设计模式—工厂模式
- 用java编写一个菱形与空心菱形
- 20145127《java程序设计》第五周学习总结
- SpringMVC入门
- Java重写equals与hashCode的注意事项 | Java基础
- java环境配置
- spring(4)
- java web一些概念区分