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

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

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

  • 相关阅读:
    ebs R12 支持IE11
    reloc: Permission denied
    3.23考试小记
    3.21考试小记
    3.20考试小记
    3.17考试小记
    3.15考试小记
    3.13考试小记
    3.12考试小记
    3.10考试小记
  • 原文地址:https://www.cnblogs.com/lzy1991/p/5353176.html
Copyright © 2020-2023  润新知