六IOC操作Bean管理(Bean 作用域)

Posted 上善若水

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了六IOC操作Bean管理(Bean 作用域)相关的知识,希望对你有一定的参考价值。

  1. 在spring里面,设置创建bean实例是单实例还是多实例

  2. 在spring里面,默认情况下,bean是单实例对象

    package com.deewinkg.test;   
       
    import com.deewinkg.bean.Book;   
    import org.springframework.context.ApplicationContext;   
    import org.springframework.context.support.ClassPathXmlApplicationContext;   
       
    public class MyTest   
    {   
        @org.junit.Test   
        public void test1()   
        {   
            // 1.加载spring的配置文件   
            ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");   
            // 2.获取配置,创建对象   
            Book book1 = context.getBean("book", Book.class);   
            Book book2 = context.getBean("book", Book.class);   
            System.out.println(book1);   
            System.out.println(book2);   
        }   
    } 
    

在这里插入图片描述

  1. 如何设置单实例还是多实例

    • 在spring配置文件bean标签里面有属性(scope)用于设置单实例还是多实例

    • scope属性值

      • 第一个值 默认值,singleton,表示单实例对象
      • 第二个值 prototype,表示是多实例对象
      <?xml version="1.0" encoding="UTF-8"?>   
      <beans xmlns="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">   
         <bean id="book" class="com.deewinkg.bean.Book" scope="prototype">   
            <property name="bname" value="Java"/>   
         </bean>   
      </beans>  
      

在这里插入图片描述

  • singleton和prototype区别

    • 第一 singleton单实例,prototype多实例

    • 第二 设置 scope值是 singleton时候,加载spring配置文件时候就会创建单实例对象

      ​ 设置 scope 值是 prototype 时候,不是在加载 spring 配置文件时候创建对象,在调用getBean 方法时候创建多实例对象

以上是关于六IOC操作Bean管理(Bean 作用域)的主要内容,如果未能解决你的问题,请参考以下文章

第246天学习打卡(知识点回顾: IOC操作bean管理 基于xml方式 bean作用域)

[Spring5]IOC容器_Bean管理_bean的作用域和bean的生命周期

Spring(Ioc和Bean的作用域)

Spring核心技术IoC容器

Spring的ioc的扫描器与bean的作用域与生命周期

Spring的ioc的扫描器与bean的作用域与生命周期