案例05 Bean的实例化案例

简介: 分别使用构造方法、静态工厂和实例工厂实例化Bean。

 分别使用构造方法、静态工厂和实例工厂实例化Bean。

1. 创建项目

Idea创建Java项目,项目名称为:case05-spring-student04。

2. 导入spring相关jar包

case05-spring-student04项目下创建lib目录,在lib目录下导入Jar包:

    • 核心包

    spring-core-5.3.25.jar

    spring-beans-5.3.25.jar

    spring-context-5.3.25.jar

    spring-expression-5.3.25.jar

      • 测试包

      junit-4.6.jar

        • 依赖包

        commons-logging-1.2.jar

        3. 创建Spring配置文件

        src目录下创建applicationContext.xml配置文件。

        <?xmlversion="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!--构造方法实例化--><beanid="studentBean1"class="com.wfit.student.StudentBean1"/><!--静态工厂实例化--><beanid="studentBean2"class="com.wfit.factory.BeanStaticFactory"factory-method="getStudentBean2"/><!--实例工厂实例化 1配置工厂 --><beanid="beanInstanceFactory"class="com.wfit.factory.BeanInstanceFactory"/><!--实例工厂实例化 2 使用factory-bean指向配置的实例工厂--><beanid="studentBean3"factory-bean="beanInstanceFactory"factory-method="getStudentBean3"/></beans>


        4. 创建StudentBean1类

        src目录下创建com.wfit.student包,此包目录下创建StudentBean1类。

        publicclassStudentBean1 {
        //无参构造方法publicStudentBean1(){
        System.out.println("构造方法实例化Bean...");
            }
        }


        5. 创建StudentBean2类

        com.wfit.student目录下创建StudentBean2类。

        publicclassStudentBean2 {
        publicStudentBean2(){
        System.out.println("静态工厂实例化Bean...");
            }
        }


        6. 创建StudentBean3类

        com.wfit.student目录下创建StudentBean3类。

        publicclassStudentBean3 {
        publicStudentBean3(){
        System.out.println("实例工厂实例化Bean...");
            }
        }


        7. 创建BeanStaticFactory类

        src目录下创建com.wfit.factory包,此包目录下创建BeanStaticFactory类。

        publicclassBeanStaticFactory {
        publicstaticStudentBean2getStudentBean2(){
        returnnewStudentBean2();
            }
        }


        8. 创建BeanInstanceFactory类

        com.wfit.factory目录下创建BeanInstanceFactory类。

        publicclassBeanInstanceFactory {
        publicBeanInstanceFactory(){
        System.out.println("实例工厂实例化...");
            }
        publicStudentBean3getStudentBean3(){
        returnnewStudentBean3();
            }
        }


        9. 创建测试类

        src目录下创建com.wfit.test包,此包目录下创建TestStudent测试类。

        publicclassTestStudent {
        @TestpublicvoidtestBean(){
        //初始化Spring容器ApplicationContext,加载配置文件ApplicationContextapplicationContext=newClassPathXmlApplicationContext("applicationContext.xml");
            }
        }


        10. 执行结果


        目录
        相关文章
        |
        9月前
        |
        Java C# Spring
        Spring中Bean实例化过程中的initializeBean方法
        Spring中Bean实例化过程中的initializeBean方法
        70 0
        |
        3月前
        |
        Java Spring 容器
        解读spring5源码中实例化单例bean的调用链
        解读spring5源码中实例化单例bean的调用链
        |
        9月前
        |
        Java Spring
        Spring中那些BeanPostProcessor在Bean实例化过程中的作用
        Spring中那些BeanPostProcessor在Bean实例化过程中的作用
        114 1
        |
        Java Spring
        案例06 Bean的作用域案例
        分别使用singleton和prototype作用域创建Bean实例,比较singleton和prototype作用域的区别。
        43 0
        |
        4月前
        |
        缓存 Java 测试技术
        Spring5源码(22)-Spring通过有参构造方法实例化单例bean
        Spring5源码(22)-Spring通过有参构造方法实例化单例bean
        74 0
        |
        XML Java 数据格式
        案例02 基于xml配置的构造方法注入案例
        通过构造方法方式来演示Spring容器在应用中是如何实现依赖注入的,实现Student输出学生姓名和年龄。
        57 0
        |
        存储 缓存 Java
        六.Spring源码剖析-单利Bean的实例化
        前面系列章节我们分析了Spring的IOC的启动流程,包括:容器创建,配置加载,配置解析,Bean注册等几个阶段,所以Bean注册其实就是把Bean的相关属性,依赖关系等封装成BeanDeafinition对象,然后注册到一个ConcurrentHashMap中。要注意的是这个BeanDeafinition只是对Bean的一个定义封装而已,并不是真正的Bean的实例,那Bean的实例是在什么时候创建的?有三种情况 如果是单利Bean,且lazy-init=false 急切初始(即时,立即,迫切,饥饿都是一个意思)的情况,在IOC容器启动之后就会根据BeanDeafinition对Bean进行
        |
        Java 数据安全/隐私保护 Spring
        Spring中实例化Bean的三种方式及作用范围和生命周期
        Spring中实例化Bean的三种方式及作用范围和生命周期
        |
        Java Spring 容器
        Spring构造通过工厂创建bean
        Spring构造通过工厂创建bean
        |
        Java Spring 容器
        Spring框架:第三章:对象的生命周期及单例bean生命周期的11个步骤
        Spring框架:第三章:对象的生命周期及单例bean生命周期的11个步骤
        110 0