1.Spring学习笔记之 ———— Bean的实例化

    什么是Bean的实例化?

    在面向对象的程序中,想要使用某个对象,就需要先实例化这个对象。Spring中,想要使用容器中的Bean,也需要实例化Bean。

    其类似于当我们需要创建一个类对象而去new这个类一样。通常来说,当我们需要用到一个Bean的时候,只有将其实例化之后,我们才可以去调用它。在Spring中,Spring会自动帮我们实例化好Bean,只需要我们告诉Spring我们需要用到哪个Bean,并在Spring的配置文件配置相关代码,这样,Spring就可以自动帮我们实例化好Bean,然后我们直接用getBean方法就可以获得Bean的实例化。

    Spring中,有三种实例化方式:分别为构造器实例化(最常用)静态工厂实例化实例工厂方式实例化

    接下来,我将详细讲解这三种实例化的区别以及使用。

 

一、构造器实例化

概述:构造器实例化是指Spring容器通过Bean对应的类中默认的构造函数(无参构造函数)来实例化Bean

具体示例:

首先,我们先随意创建一个Bean类

Bean.java:

package com.zzc.contructor;

public class Bean1 {
    //什么都不用做
}

接着,在Spring配置文件中配置

beans1.xml:




    
    

测试,写一个main函数,做测试

Test1.java:

package com.zzc.contructor;

public class Test1 {

    public static void main(String[] args) {]
        //定义配置文件路径
        String xmlPath = "com/zzc/contructor/beans1/xml";
        //Application Context 在加载配置文件时,对Bean进行实例化
        ApplicationContext appliContext = new ClassPathXmlApplicationContext(xmlPath);
        //getBean方法里放的是在xml文件里的id名
        Bean1 bean = (Bean1) appliContext.getBean("bean1");
        System.out.println(bean);
    }
}

运行结果:

com.zzc.contructor.Bean1@61f5df

二、静态工厂方式实例化

概述:静态工厂方式要求创建一个静态工厂的方法来创建Bean的实例

具体示例:

首先,还是一样,先创建一个Bean类:

Bean2.java:

package com.zzc.staticFactory

public class Bean2 {
    //什么都不用写
}

接着,创建一个Bean工厂类,并在其里面定义一个静态的返回Bean对象的方法:

Bean2Factory.java:

package com.zzc.staticFactory

public class Bean2Factory {

    //注意这里的这个方法是static的
    public static Bean2 createBean() {
        return new Bean2();
    }

}

然后在xml文件里面配置:

beans2.xml:



    
    
     

搞定,测试,测试:

Test2.java:

package com.zzc.staticFactory;

public class Test2 {

    public static void main(String[] args) {
        String xmlPath = "com/zzc/staticFactory/beans2.xml"
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);

        System.out.println(applicationContext.getBean("bean2"));
    }

}

运行结果:

com.zzc.staticFactory.Bean2@56dfcb

三、实例工厂方式实例化:

概述:实例工厂采用直接创建Bean实例的方式,在配置文件中,通过factory-bean属性配置一个实例工厂,然后使用factory-method属性确定使用工厂中的哪个方法。

具体示例:

首先,还是一样,创建一个Bean类

Bean3.java:

package com.zzc.factory;

public class Bean3 {
    //什么都不用写
}

接着,创建我们的Bean工厂类:

Bean3Factory.java:

package com.zzc.factory;

public class Bean3Factory {

    public Bean3Factory() {
        System.out.println("bean3工厂实例化中");
    }

    public Bean3 createBean() {
        return new Bean3();
    }

}

最后,在xml配置文件中这样配置:

beans3.xml:




    
    
    
    

测试,测试:

Test3.java:

package com.zzc.factory;

public class Test3 {

    public static void main(String[] args) {
        String xmlPath = "com/zzc/factory/beans3.xml";
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
        System.out.println(applicationContext.getBean("bean3"));
    }

}

运行结果:

bean3工厂实例化中

com.zzc.factory.Bean3@56dfcb

 

    至此,Spring实例化Bean的三种方式就已经介绍完啦,希望对你们有帮助!

你可能感兴趣的:(java后台开发,Spring)