Bean作用域有哪些

  1. singleton

所有Bean实例都用同一个,无论实例化多少次

  1. prototype

每次实例化都生成新的Bean实例

  1. request(Web程序)

每个request请求生成新的Bean实例

  1. session(Web程序)

每个session请求生成新的Bean实例

  1. global session(Web程序)

若Web程序基于servlet,则视为普通session;若基于porlet,则映射到porlet的global范围

singleton与prototype测试

新建BeanScope包,UserService类

package BeanScope;import java.text.MessageFormat;public class UserService {private String username;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public void changeUsername(String username) {this.username = username;}public void greet() {System.out.println(MessageFormat.format("嗨,我是{0}", username));}
}

新建beanScope.xml配置Bean

    <context:component-scan base-package="BeanScope"/><bean id="userService" class="BeanScope.UserService" scope="singleton"><property name="username" value="你大爷"/></bean>

新建单元测试BeanScopeTest

    @Testpublic void beanScopeTest() {ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beanScope.xml");// 初次实例化UserService userService = (UserService) applicationContext.getBean("userService");userService.greet();userService.changeUsername("你爸爸");userService.greet();// 再次实例化userService = (UserService) applicationContext.getBean("userService");userService.greet();}

运行输出:

嗨,我是你大爷
嗨,我是你爸爸
嗨,我是你爸爸

修改scope为prototype,并运行单元测试输出:

嗨,我是你大爷
嗨,我是你爸爸
嗨,我是你大爷

源码下载

git@github.com:Angryshark128/Practice.git

Spring中Bean作用域有哪些相关推荐

  1. Spring中bean的五个作用域简介(转载)

    Spring上个版本的IoC容器支持两个不同的bean作用域(单例与原型). Spring 2.0改进了这一点,不仅提供了一些依赖于Spring部署环境(比如说,在web环境中的request和ses ...

  2. Spring 中 Bean 的生命周期

    本文作者: 伯乐在线 - yemengying 智商捉鸡?,实在没办法一下子理解Spring IoC和AOP的实现原理,看的闹心也不太懂,所以...决定拆成小的不能在小的一个个问题,一点点啃.今天先来 ...

  3. 厉害了,Spring中bean的12种定义方法!

    前言 在庞大的java体系中,spring有着举足轻重的地位,它给每位开发者带来了极大的便利和惊喜.我们都知道spring是创建和管理bean的工厂,它提供了多种定义bean的方式,能够满足我们日常工 ...

  4. 面试问题:Spring中Bean 的生命周期

    Spring Bean生命周期执行流程 在传统的 Java 应用中,Bean 的生命周期很简单,使用关键字 new 实例化 Bean,当不需要该 Bean 时,由 Java 自动进行垃圾回收. Spr ...

  5. spring中bean属性scope

    spring中bean属性scope singleton:SpringIoc容器只会创建该Bean的唯一实例,所有的请求和引用都只使用这个实例 Property: 每次请求都创建一个实例 reques ...

  6. spring中Bean的作用范围

    Spring中Bean的作用范围 Singleton:使用该属性定义Bean时,IOC容器仅创建一个Bean实例,IOC容器每次返回的是同一个Bean实例. singleton是默认的作用域,当定义B ...

  7. Spring中Bean初始化和销毁的多种方式

    Spring中Bean初始化和销毁的多种方式 一.Bean的多种初始化方式 1.PostConstruct注解 2.实现InitializingBean接口 3.声明init-method方法 二.B ...

  8. Spring中bean的初始化和销毁几种实现方式详解

    关联博文:Spring中Bean的作用域与生命周期 Bean的生命周期 : 创建bean对象 – 属性赋值 – 初始化方法调用前的操作 – 初始化方法 – 初始化方法调用后的操作 – --- 销毁前操 ...

  9. Spring中bean标签的属性和值:

    Spring中bean标签的属性和值: <bean name="user" class="com.pojo.User" init-method=" ...

  10. (转)Spring中Bean的命名问题(id和name区别)及ref和idref之间的区别

    Spring中Bean的命名 1.每个Bean可以有一个id属性,并可以根据该id在IoC容器中查找该Bean,该id属性值必须在IoC容器中唯一: 2.可以不指定id属性,只指定全限定类名,如: & ...

最新文章

  1. python进程和线程_Python进程与线程知识
  2. python3运行报错:TypeError: Object of type ‘type‘ is not JSON serializable解决方法(详细)
  3. SecureCRT从Windows中上传文件lrzsz工具
  4. arrays中copyof复制两个数组_数组,及二维数组
  5. 永信至诚携 “企业安全人才培养解决方案”惊艳WOT技术峰会
  6. 在Linux终端下调用可执行文件时总要加上符号./的原因
  7. 实用的编程网站—良好的开端
  8. Golang的错误处理笔记
  9. 将S所指的字符串中下标为偶数同时ASCⅡ值为奇数的字符删除,所指串中剩余的字符形成新的串放在t所指的数组中
  10. 海龟交易法则05_掌握优势
  11. (百看不如一练系列)整理的40个前端练手项目|||实践出真知
  12. mysql查询语句创建临时表_MySQL 临时表_mysql临时表创建_mysql临时表创建
  13. Go语言圣经 - 前言
  14. 如何调换手机桌面位置_手机桌面很乱怎么整理?简单七招让你效率更高!
  15. js初级动态随机抽人事件运用 计时器和超时期应用 解决用on事件onclick多次点击不能停止的问题
  16. MFC工具条与状态条设计
  17. 【mysql】批量更新数据
  18. mybatis-plus异常, org.apache.ibatis.builder.BuilderException: Error evaluating expression AND
  19. 体检明明不查乙肝,但是体检报告就是不合格,公司不让入职
  20. I want to be a teacher when I grow up ——长大后我想当老师

热门文章

  1. ExpandableListView 的使用
  2. 冰点还原离线激活_冰点还原密钥,手把手教你如何激活冰点还原
  3. UE编辑器修改背景theme
  4. python与审计底稿关系_干货!审计底稿,六大禁忌
  5. c语言 格雷码构造问题,格雷码剖析
  6. Windows 2003声卡驱动的安装.
  7. 在vb.net中运用多线程实现远程数据收集
  8. 在Chrome上安装ie tab插件
  9. 超级计算机summit存储容量,美国Summit超级计算机:采用超过27000块NV计算卡
  10. 网狐6603服务器文档,【整理发布】网狐 6603 棋牌平台搭建图文详解(二)