创建对象的三种方式:

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创建对象的三种方式以及创建时间的更多相关文章

  1. Spring笔记03(Spring创建对象的三种方式)

    1.创建对象的三种方式和bean的生命周期的验证: Animal接口代码: package cn.pb.dao; /** * 动物接口 */ public interface Animal { //吃 ...

  2. Spring-02 -Spring 创建对象的三种方式 :1.通过构造方法创建/2.实例工厂/3.静态工厂

    通过构造方法创建  1.1 无参构造创建:默认情况. 1.2 有参构造创建:需要明确配置 1.2.1 需要在类中提供有参构造方法 1.2.2 在 applicationContext.xml 中设置调 ...

  3. 4 spring 创建对象的三种方式

    方式1. 通过构造方法创建     1.1 无参构造创建:默认情况.     1.2 有参构造创建:需要明确配置         1.2.1 需要在类中提供有参构造方法         1.2.2 在 ...

  4. spring入门:beans.xml不提示、别名、创建对象的三种方式

    spring的版本是2.5 一.beans.xml文件不提示 Location:spring-framework-2.5.6.SEC01\dist\resources\spring-beans-2.5 ...

  5. spring配置datasource三种方式

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp34 spring配置datasource三种方式 1.使用org.spri ...

  6. js创建对象的三种方式

    <script> //创建对象的三种方式 // 1.利用对象字面量(传说中的大括号)创建对象 var obj1 = { uname: 'ash', age: 18, sex: " ...

  7. js创建对象的三种方式和js工厂模式创建对象

    文章地址: https://www.cnblogs.com/sandraryan/ 创建对象 创建对象的三种方式 构造函数 ,是一种特殊的方法.主要用来在创建对象时初始化对象 1. 调用系统的构造函数 ...

  8. JavaScript中创建对象的三种方式!

    JavaScript中创建对象的三种方式! 第一种 利用对象字面量! // 创建对象的三种方式! // 1 对象字面量. var obj = { // 对象的属性和方法! name: 'lvhang' ...

  9. 创建 Spring容器的三种方式

    一.src路径下打包完在war包的classes层级下 1.Spring容器创建的三种方式 创建Bean容器之后创建对象: 其中第三种使用的是BeanFactory对象 2.spring通过配置文件用 ...

随机推荐

  1. mac os PHP 访问MSSQL

    写在前: 项目的数据库是sql server,但是自己的系统是mac os.这样导致了需要一个烦人的系统环境搭建过程.目前要在mac 上的php环境中支持mssql环境访问,经过自己了解,有两种方式: ...

  2. 10934 - Dropping water balloons(DP)

    这道题的思路非常难想. 问你须要的最少实验次数,这是非常难求解的.并且我们知道的条件仅仅有三个.k.n.实验次数 . 所以我们最好还是改变思路,转而求最高所能确定的楼层数 .  那么用d[i][j]表 ...

  3. EC知识总结ITE5570

    以笔记本上的EC ITE5570进行讲解  ITE EC代码解析 1.一简介 EC(Embed Controller,嵌入式控制器)是一个16位单片机,它内部本身也有一定容量的Flash来存储EC的代 ...

  4. Java IO 类

    IO包中绝大部分的类都是由以下四个类直接或间接继承来的InputStream OutputStream Reader 还有Writer 其中InputStream和OutputStream代表输入流和 ...

  5. TensorFlow从入门到实战资料汇总 2017-02-02 06:08 | 数据派

    TensorFlow从入门到实战资料汇总 2017-02-02 06:08 | 数据派 来源:DataCastle数据城堡 TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学 ...

  6. 压力测试工具ab,wrk,locust简介

    ab 无疑是目前最常见的压力测试工具.其典型用法如下: shell> ab -k -c 100 -t 10 http://domain/path 其中,参数「c」表示的是并发, 参数「t」表示的 ...

  7. 01 svn服务搭建

    一:svn服务搭建.(1)首先下载服务端svn: Setup-Subversion-1.6.5.msi(2)下载客户端svn: TortoiseSVN-1.6.6.17493-win32-svn-1. ...

  8. MySQL 更新和删除

    更新和删除的操作SQL语句比較简单,只是要注意使用UPDATE的时候.要注意WEHER条件的限制,以下的语句是仅仅更新id为10005的email地址,假设不加WHERE语句限制,那么将表中全部的em ...

  9. 基于chyh1990/caffe-compact在windows vs2013上编译caffe步骤

    1.      从https://github.com/chyh1990/caffe-compact下载caffe-compact代码: 2.      通过CMake(cmake-gui)生成vs2 ...

  10. SQuirreL – Phoenix的GUI

    本文主要介绍如何通过SQuirreL访问Phoenix,以及如何在SQuirreL中配置Phoenix参数. 什么是SQuirrel? SQuirreL SQL Client是一个开源免费软件, 可以 ...