Spring创建对象的三种方式以及创建时间
创建对象的三种方式:
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方法时创建对象
不好处:不能过早的发现错误
好处:按照需求加载数据(什么时候要什么时候加载)
Spring创建对象的三种方式以及创建时间的更多相关文章
- Spring笔记03(Spring创建对象的三种方式)
1.创建对象的三种方式和bean的生命周期的验证: Animal接口代码: package cn.pb.dao; /** * 动物接口 */ public interface Animal { //吃 ...
- Spring-02 -Spring 创建对象的三种方式 :1.通过构造方法创建/2.实例工厂/3.静态工厂
通过构造方法创建 1.1 无参构造创建:默认情况. 1.2 有参构造创建:需要明确配置 1.2.1 需要在类中提供有参构造方法 1.2.2 在 applicationContext.xml 中设置调 ...
- 4 spring 创建对象的三种方式
方式1. 通过构造方法创建 1.1 无参构造创建:默认情况. 1.2 有参构造创建:需要明确配置 1.2.1 需要在类中提供有参构造方法 1.2.2 在 ...
- spring入门:beans.xml不提示、别名、创建对象的三种方式
spring的版本是2.5 一.beans.xml文件不提示 Location:spring-framework-2.5.6.SEC01\dist\resources\spring-beans-2.5 ...
- spring配置datasource三种方式
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp34 spring配置datasource三种方式 1.使用org.spri ...
- js创建对象的三种方式
<script> //创建对象的三种方式 // 1.利用对象字面量(传说中的大括号)创建对象 var obj1 = { uname: 'ash', age: 18, sex: " ...
- js创建对象的三种方式和js工厂模式创建对象
文章地址: https://www.cnblogs.com/sandraryan/ 创建对象 创建对象的三种方式 构造函数 ,是一种特殊的方法.主要用来在创建对象时初始化对象 1. 调用系统的构造函数 ...
- JavaScript中创建对象的三种方式!
JavaScript中创建对象的三种方式! 第一种 利用对象字面量! // 创建对象的三种方式! // 1 对象字面量. var obj = { // 对象的属性和方法! name: 'lvhang' ...
- 创建 Spring容器的三种方式
一.src路径下打包完在war包的classes层级下 1.Spring容器创建的三种方式 创建Bean容器之后创建对象: 其中第三种使用的是BeanFactory对象 2.spring通过配置文件用 ...
随机推荐
- xhtml三种元素类型
xhtml三种元素类型:块级元素/内联元素/可变元素 块级元素:独占一行.可自定义自己的宽度和高度.作为其他元素的容器,可容纳其他内联元素和块级元素,喻做一个盒子.内联元素:始终以行内逐个显示.不能设 ...
- 找回Xcode7的代码折叠功能
升级到Xcode7后,会发现代码折叠功能不见了,这是怎么回事? 其实这个功能还在的,用以下的快捷键仍然可以折叠代码.只是不能用鼠标实现折叠了:在Xcode菜单里选择Preference——Text E ...
- restframework-总结
1. 规范 - 版本控制 - 部署专用的域名(防止跨域攻击) - 因为restframework又称为面向资源的编程所以url名词需要用专业的名词去表示 - 请求方式method - url上可以传递 ...
- 动态控制body最小高度
//动态控制body最小高度 var windowHeight = $(document).height() - 164; $(".body-content").css({ &qu ...
- 生产追溯系统-Wifi+传感器,实现计数器以及监控机器是否停止
物联网听上去是一个高大上的词儿,还有什么大数据.云.智能制造等等,今天我也往这方面稍微靠一靠,这篇文章主要介绍的是通过 wifi 模块与传感器组合,实现感应计数器,应用场景主要如下: 1.统计 SMT ...
- MacOS 修改主机名
修改主机名 sudo scutil --set HostName xxx 修改共享名 sudo scutil --set ComputerName xxx
- 05 referer头与防盗链
像上图中的这个效果,当我们在网页里引用站外图片时,常出现这样的情况. ??? 服务器是怎么样知道,这个图片是在站外被引用的呢? 还有在网站的统计结果,统计用户从何而来,如下图 ??? 统计时,是如何得 ...
- cURL实现Get和Post
1.Get请求: //初始化 $ch = curl_init(); //设置选项,包括URL curl_setopt($ch, CURLOPT_URL, "http://www.jb51.n ...
- php CURL 模拟 POST 提交数据
<?php function liansuo_post($url,$data){ // 模拟提交数据函数 $curl = curl_init(); // 启动一个CURL会话 curl_seto ...
- EasyDarwin云平台:EasyCamera开源摄像机接入海康威视摄像机PS流转ES流
本文转自EasyDarwin开源团队成员Alex的博客:http://blog.csdn.net/cai6811376 海康威视使用PS流封装H.264流,EasyDarwin云平台支持ES流.当我们 ...