spring框架学习----bean作用域(代码片段)

RAIN7 RAIN7     2023-03-14     436

关键词:

文章目录

Spring 框架学习(六)---- Bean作用域


  经过前面的学习,我们可以知道bean是存在作用域的。

  从spring的官方文档中发现spring支持六种作用域,我们只需要重点认识singleton、protoType即可,后面的作用域都是于web框架相关的。



一、singleton(单例模式)



  就和图中的一样,如果bean的作用域为singleton,那么在IOC容器中只有每个bean只有一个唯一的实例被创建。

我们通过代码来认识一下,bean的单例模式

bean的作用域默认是singleton,我们也可以手动通过在xml的bean中scope进行设置。

<?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="user" class="pojo.User" scope="singleton"/>

</beans>

根据同一个bean 获取两次实例,查看实例是否相同

    public static void main(String[] args) 
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        User user1 = context.getBean("user", User.class);
        User user2 = context.getBean("user",User.class);
        System.out.println(user1==user2);
    

查看运行结果

说明 这个Bean的作用域是单例模式,根据这个bean只能创建一个唯一的实例。


二、protoType(原型模式)



就和图中的一样,如果bean的作用域为protoType,那么在IOC容器中每个bean都可以创建多个实例。

我们通过代码来认识一下,bean的原型模式

bean的作用域默认是singleton,我们也可以手动通过在xml的bean中scope进行设置成 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="user" class="pojo.User" scope="prototype"/>

</beans>

根据同一个bean 获取两次实例,查看实例是否相同

    public static void main(String[] args) 
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        User user1 = context.getBean("user", User.class);
        User user2 = context.getBean("user",User.class);
        System.out.println(user1==user2);
    

查看运行结果

说明了当设置bean为 protoType时,一个bean可以创建多个不同的实例。

spring框架spring依赖注入dibean作用域bean的自动装配(代码片段)

Spring依赖注入DI、Bean作用域、Bean的自动装配依赖注入(DependencyInjection,DI)依赖:指Bean对象的创建依赖于容器,Bean对象的依赖资源注入:指Bean对象所依赖的资源,由容器来设置和装配构造器注入构造器注入:https://www.cnblogs.com/luoxiao1104... 查看详情

spring学习-ioc-scope作用域(代码片段)

scope作用域scope作用域定义了spring容器中生成的bean实例的可见范围,包括如下:singleton:生成唯一的bean实例,是spring里的缺省作用域,spring容器初始化时进行实例化prototype:每次请求时,都会生成新的b... 查看详情

spring--bean作用域(代码片段)

 Spring框架功能强大,其中一个常用的功能是使用IOC容器来管理Bean,在创建Bean的过程中,主要有5中作用域,下面就来介绍一下每一个作用域的特点和作用。 1、Singleton:设置为该模式的Bean,容器初始化时... 查看详情

bean注解(annotation)配置-bean作用域与生命周期回调方法配置(代码片段)

Spring系列教程Spring框架介绍Spring框架模块Spring开发环境搭建(Eclipse)创建一个简单的Spring应用Spring控制反转容器(InversionofControl–IOC)理解依赖注入(DI–DependencyInjection)BeanXML配置(1)-通过XML配置加载BeanBeanXML配置(2)-Bean作... 查看详情

spring学习总结——高级装配学习三(bean的作用域)

 一、bean的作用域  在默认情况下,Spring应用上下文中所有bean都是作为以单例(singleton)的形式创建的。也就是说,不管给定的一个bean被注入到其他bean多少次,每次所注入的都是同一个实例。如果你所使用的类是易变的... 查看详情

学习笔记——spring管理第三方bean;spring中bean的作用域;spring中bean的生命周期;spring中bean的后置处理器;spring中自动装配(代码片段)

2023-01-17一、Spring管理druid步骤 (1)导入jar包<!--https://mvnrepository.com/artifact/com.alibaba/druid--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artif 查看详情

详解spring中bean的作用域与生命周期(代码片段)

摘要:在利用Spring进行IOC配置时,关于bean的配置和使用一直都是比较重要的一部分,同时如何合理的使用和创建bean对象,也是小伙伴们在学习和使用Spring时需要注意的部分,所以这一篇文章我就来和大家讲一... 查看详情

springbean作用域

Bean的作用域当在Spring中定义一个bean时,你必须声明该bean的作用域的选项。例如,为了强制Spring在每次需要时都产生一个新的bean实例,你应该声明bean的作用域的属性为prototype。同理,如果你想让Spring在每次需要时都返回同一个b... 查看详情

spring详解bean的六种作用域执行流程生命周期(代码片段)

@TOCBean作⽤域和⽣命周期从前⾯的博客我们可以看出Spring是⽤来读取和存储Bean,因此在Spring中Bean是最核⼼的操作资源,所以接下来我们深⼊学习⼀下Bean对象通过⼀个案例来看Bean作⽤域的问题假设现在有⼀个公共的Bean,提供给A... 查看详情

javaweb学习笔记之spring中bean的作用域

Bean简介:在Spring中,那些组成你应用程序的主体(backbone)及由SpringIoC容器所管理的对象,被称之为bean。简单地讲,bean就是由Spring容器初始化、装配及管理的对象,除此之外,bean就与应用程序中的其他对象... 查看详情

spring学习springbean装配(代码片段)

Bean的作用域==========================bean有五种作用域scopesingleton:单例,指一个Bean容器中只存在一份prototype:每次请求(每次使用)创建新的实例,destroy方式不生效request:每次http请求创建一个实例且仅在当前request内有效sesson:同上,每... 查看详情

spring中bean的作用域(代码片段)

1:和变量一样,bean也有作用域,spring中我们可以为bean指定作用域:<bean id="" class=""  scope="....">2:作用域的种类singleton:单例模式,在spring中只有一个实例 查看详情

spring4学习笔记-配置bean-自动装配关系作用域引用外部属性文件

1Autowire自动装配 1.1使用:只需在<bean>中使用autowire元素 <beanid="student"class="com.kejian.spring.bean.autowire.Student" p:name="Tony"autowire="byName"></bean> 1.2类型 byName目标bean的id与属性名一置, 查看详情

8--深入使用spring--2...2指定bean的作用域

      8.2.2指定Bean的作用域        当使用XML配置方式来配置Bean实例时,可以通过scope来指定Bean实例的作用域,没有指定scope属性的Bean实例作用域默认是singleton。        当采用零配置方式来管理Bean实... 查看详情

spring框架参考手册(4.2.6版本)翻译——第三部分核心技术6.5bean的作用域

6.1 Bean的作用域当你创建一个Bean的定义,你就为这个Bean定义的类创建了一个配方。Bean的定义是一个配方的想法是重要的,因为这意味着,你可以通过这个配方创建许多对象实例。您不仅可以控制要插入到从特定bean定义创建... 查看详情

spring:玩转bean的作用域和自动装配!

一、bean的作用域 在Spring中,那些组成应用程序的主体及由SpringIoC容器所管理的对象,被称之为bean。简单地讲,bean就是由IoC容器初始化、装配及管理的对象.实体类:publicclassPerson{privateStringname;privateintage;privateStringlike;privateString... 查看详情

聊聊spring中bean的作用域(代码片段)

前言今天分享一下springbean的作用域,理解bean的作用域能够在使用过程中避免一些问题,bean的作用域也是springbean创建过程中一个重要的点。Springbean的作用域类型singleton(单例模式):在整个应用程序的生命周期中,只创建一个B... 查看详情

spring总结之二(bean作用域依赖注入)(代码片段)

###Bean的作用域:单例(singleton),多例(prototype)1.单例模式:表示在任何地方使用对象,总是一个(对象是唯一的)。(笔面试重点)饿汉式publicclassKingprivatefinalstaticKingking=newKing();privateKing()publicstaticKinggetKing()returnking;懒汉式publiccla 查看详情