当前位置: 代码迷 >> 综合 >> 网课学习笔记(四、@Scope,@Lazy)
  详细解决方案

网课学习笔记(四、@Scope,@Lazy)

热度:86   发布时间:2023-12-12 12:13:55.0

我们都知道springIOC容器中保存注入的对象,那么这些对象的生命周期是怎么样的呢?

这就涉及到@Scope注解,它指定了对象的作用域

常见作用域有以下几种:

prototype  多实例,获取对象时才创建对象(每次获取Bean时都会产生一个新的实例)
singleton  单实例,容器启动时创建对象(全局有且只有一个实例,注解默认)
---------下面了解一下-------------
request  主要针对web应用,每次请求都创建一个实例
session  同一个session使用同一个实例

使用方式如下:

	@Scope("prototype")@Beanpublic Person person(){return new Person("zc2","27");}

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

由上面我们可知:singleton  单实例是在容器启动时创建对象的,那么如果我们想让它在获取对象的时候才创建实例呢?这里就需要用到懒加载,我们可以通过@Lazy来指定单实例在获取时才去创建实例。如下

@Lazy@Beanpublic Person person(){return new Person("zc2","18");}

 

  相关解决方案