【Spring IoC】Spring Bean(二)
2020-12-13 14:02
标签:注入 原型 设置 定义 实现 false 就是 one getbean 被称作 bean 的对象是构成应用程序的支柱也是由 Spring IoC 容器管理的。bean 是一个被实例化,组装,并通过 Spring IoC 容器所管理的对象。这些 bean 是由容器提供的配置元数据创建的。 bean 定义包含称为配置元数据的信息。主要包括: 每个 bean 可以定义的属性有: 当在 Spring 中定义一个 bean 时,你必须声明该 bean 的作用域的选项。例如,为了强制 Spring 在每次需要时都产生一个新的 bean 实例,你应该声明 bean 的作用域的属性为 prototype。同理,如果你想让 Spring 在每次需要时都返回同一个bean实例,你应该声明 bean 的作用域的属性为 singleton。 1. singleton singleton 是默认的作用域,也就是说,当定义 bean 时,如果没有指定作用域配置项,则 bean 的作用域被默认为 singleton。 当一个bean的作用域为Singleton,那么Spring IoC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则只会返回bean的同一实例。 singleton是单例类型,就是在创建起容器时就同时自动创建了一个bean的对象,不管你是否使用,他都存在了,每次获取到的对象都是同一个对象。注意,singleton作用域是Spring中的缺省作用域。你可以在 bean 的配置文件中设置作用域的属性为 singleton。 2. prototype 当一个bean的作用域为prototype,表示一个bean定义对应多个对象实例。 prototype作用域的bean会导致在每次对该bean请求(将其注入到另一个bean中,或者以程序的方式调用容器的getBean()方法)时都会创建一个新的bean实例 prototype是原型类型,它在我们创建容器的时候并没有实例化,而是当我们获取bean的时候才会去创建一个对象,而且我们每次获取到的对象都不是同一个对象。据经验,对有状态的bean应该使用prototype作用域,而对无状态的bean则应该使用singleton作用域。 3. request 每次HTTP请求都会创建一个新的Bean,该作用域仅适用于WebApplicationContext环境。 4. session 同一个HTTP Session共享一个Bean,不同Session使用不同的Bean,仅适用于WebApplicationContext环境 5. global-session 一般用于Portlet应用环境,该运用域仅适用于WebApplicationContext环境。 【Spring IoC】Spring Bean(二) 标签:注入 原型 设置 定义 实现 false 就是 one getbean 原文地址:https://www.cnblogs.com/myitnews/p/11548748.html一、Spring Bean的定义
二、Spring Bean的作用域
Spring 框架支持以下五个作用域,分别为singleton、prototype、request、session和global session。三、Spring Bean的生命周期
四、Spring Bean的继承