案例06 Bean的作用域案例

简介: 分别使用singleton和prototype作用域创建Bean实例,比较singleton和prototype作用域的区别。

 分别使用singleton和prototype作用域创建Bean实例,比较singleton和prototype作用域的区别。

1. 创建项目

Idea创建Java项目,项目名称为:case06-spring-student05。

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="singletonBean"class="com.wfit.student.SingletonBean"scope="singleton"/><!--原型模式--><beanid="prototypeBean"class="com.wfit.student.PrototypeBean"scope="prototype"/></beans>


        4. 创建SingletonBean类

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

        publicclassSingletonBean {
        publicSingletonBean(){
        System.out.println("singleton...");
            }
        }


        5. 创建PrototypeBean类

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

        publicclassPrototypeBean {
        publicPrototypeBean(){
        System.out.println("prototype...");
            }
        }


        6. 创建测试类

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

        publicclassTestStudent {
        @TestpublicvoidtestSingleton(){
        //初始化Spring容器ApplicationContext,加载配置文件ApplicationContextapplicationContext=newClassPathXmlApplicationContext("applicationContext.xml");
        SingletonBeanbean1=applicationContext.getBean("singletonBean",SingletonBean.class);
        SingletonBeanbean2=applicationContext.getBean("singletonBean",SingletonBean.class);
        System.out.println(bean1==bean2);
            }
        @TestpublicvoidtestPrototype(){
        //初始化Spring容器ApplicationContext,加载配置文件ApplicationContextapplicationContext=newClassPathXmlApplicationContext("applicationContext.xml");
        PrototypeBeanbean1=applicationContext.getBean("prototypeBean",PrototypeBean.class);
        PrototypeBeanbean2=applicationContext.getBean("prototypeBean",PrototypeBean.class);
        System.out.println(bean1==bean2);
            }
        }


        7. 执行结果

          • testSingleton执行结果


          testPrototype执行结果



          目录
          相关文章
          |
          5月前
          |
          XML druid Java
          Spring5系列学习文章分享---第二篇(IOC的bean管理factory+Bean作用域与生命周期+自动装配+基于注解管理+外部属性管理之druid)
          Spring5系列学习文章分享---第二篇(IOC的bean管理factory+Bean作用域与生命周期+自动装配+基于注解管理+外部属性管理之druid)
          59 0
          |
          4月前
          |
          Java Spring 容器
          循环依赖问题之实例化Bean是通过如何实现的
          循环依赖问题之实例化Bean是通过如何实现的
          |
          5月前
          |
          XML 前端开发 Java
          【JavaEE进阶】 Bean的作用域与生命周期
          【JavaEE进阶】 Bean的作用域与生命周期
          |
          6月前
          |
          XML Java 数据格式
          Spring框架学习 -- Bean的生命周期和作用域
          Spring框架学习 -- Bean的生命周期和作用域
          53 2
          |
          6月前
          |
          缓存 前端开发 Java
          面试题:说说你对Bean作用域的理解和使用?
          面试题:说说你对Bean作用域的理解和使用?
          49 0
          |
          Java Spring
          案例05 Bean的实例化案例
          分别使用构造方法、静态工厂和实例工厂实例化Bean。
          54 0
          |
          XML Java 数据格式
          案例02 基于xml配置的构造方法注入案例
          通过构造方法方式来演示Spring容器在应用中是如何实现依赖注入的,实现Student输出学生姓名和年龄。
          64 0
          |
          Java Spring 容器
          探究Spring Bean的六种作用域:了解适用场景和使用方式
          探究Spring Bean的六种作用域:了解适用场景和使用方式
          |
          XML Java 数据格式
          案例03 基于xml配置的setter方法注入案例
          通过setter方法方式来演示Spring容器在应用中是如何实现依赖注入的,实现StudentService调用StudentDao的saveStudent操作。
          89 0
          |
          Java 容器 Spring
          解释下 Spring 支持的几种 bean 的作用域?
          解释下 Spring 支持的几种 bean 的作用域?
          99 0