博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring创建对象的三种方式以及创建时间
阅读量:5993 次
发布时间:2019-06-20

本文共 1121 字,大约阅读时间需要 3 分钟。

创建对象的三种方式:     

       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方法时创建对象

                   不好处:不能过早的发现错误

                   好处:按照需求加载数据(什么时候要什么时候加载)

转载于:https://www.cnblogs.com/lzy1991/p/5353176.html

你可能感兴趣的文章
[UWP]不那么好用的ContentDialog
查看>>
【许晓笛】EOS 数据库与持久化 API —— 实战
查看>>
使用C#创建快捷方式
查看>>
IIS中“绑定”,“IP地址全部未分配”到底是个什么玩意
查看>>
Jenkins ant build.xml文件详解(学习笔记六)
查看>>
Git 使用
查看>>
响应式滑块动画插件
查看>>
【JAVA秒会技术之秒杀面试官】JavaEE常见面试题(一)
查看>>
博客搬家通知
查看>>
C#SMTP发送邮件在阿里云服务器上需要注意的问题
查看>>
蚂蚁金服通信框架SOFABolt解析 | 编解码机制
查看>>
Linux 下安装 Redmine
查看>>
Git笔记02(Git基础命令)
查看>>
检查.net dll构建的目标平台是any cpu、x86、x64
查看>>
简易爬虫代码实现——基于python2.7
查看>>
Android开发之自定义Spinner
查看>>
Google和IMAX放弃VR相机
查看>>
MultiTigger 绑定异常处理
查看>>
FFmpeg 命令
查看>>
[.NET]使用十年股价对比各种序列化技术
查看>>