@Scope 范围
(1) singleton 默认值 采用单例模式创建对象,
单例的模式由bean factory自身来维护
在单例下,IOC容器启动时就会把组件加到到容器里
(2) prototype 采用多例模式创建对象 ,为每一个bean请求创建一个实例
容器初始化时不创建bean,每次请求获取时创建新的bean
(3) request 创建对象后 会把对象存到request中 在web项目中应用
请求完成后 对象会失效并被垃圾回收
同一个请求创建一个实例
(4) session spring创建对象后,把对象存到session中 在web项目中应用
在session过期后,bean会随之失效
同一个session床创建一个实例
(5) global-session 应用在web项目中,必须在porlet环境中使用
例如登录了百度,其他的百度产品也登录了
如果没有这种环境,配置之后相当于配置了sesion
当你的应用部署在Portlet容器中工作时,它包含很多portlet。如果 你想要声明让所有的portlet共用全局的存储变量的话,那么这全局变量需要存储在global-session中。全局作用域与Servlet中的session作用域效果相同。
01 singleton 单例
在单例下,IOC容器启动时就会把组件加到到容器里
测试
输出
true
02 prototype 多例
容器初始化时不创建bean,每次请求获取bean时调用加了@Bean的方法创建新的bean
测试
输出
false