关键字  @Scope  @Qualifier  Singleton

单例

Spring是单例模式。结合Springboot的例子。

Controller

@Autowired private TestBean tb;

@RequestMapping("/single")
public String single() {
tb.setAge(tb.getAge() + 10 );
// 每次输出的hashcode一样,同一个实例。age在累加,也证明是单例。
return String.valueOf(tb.getAge()) + "===>" + this.hashcode();
}

Bean

@Component
public class TestBean {
private int age; public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
}
}

从不同的客户端或者机器访问url   /single  均返回累加值,证明是单例。因此Spring单例模式中谨慎使用类变量。

单例不阻塞

两个不同IP的请求,请求到同一个单例controller中的sleep方法,均会执行,不会因为一个sleep, 另一个阻塞

    @RequestMapping("/sleep")
public String sleep() throws InterruptedException {
System.out.println("begin sleeping");
Thread.sleep(100 * 1000);
return "finish sleeping";
}

Scope

Bean的Scope标签可以指定bean在Spring单例的范围和是否为单例,解释常用的两个

(1)singleton:在spring容器中的单例,通过spring容器获得该bean时总是返回唯一的实例 (默认)
(2)prototype:每次获得bean都会生成一个新的对象

最新文章

  1. 【刷题记录】首师附NOIP练习20160820
  2. adb server is out of date. killing...
  3. EF:oracle的number类型映射为C#的boolean类型
  4. 第十课:CSS选择器的介绍和区分
  5. TYVJ 1011 NOIP 2008&&NOIP 2000 传纸条&&方格取数 Label:多线程dp
  6. Oracle 12C -- 使用seed PDB创建新的pdb
  7. IIS 之 HTTP错误 404.17 - Not Found(请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。)
  8. 第二十九篇、CoreAnimation的使用
  9. oracle索引再论
  10. 起步X5 的铛铛的安装部署过程
  11. Unity Shader笔记
  12. 零拷贝sendfile解析
  13. 701 C. They Are Everywhere
  14. day17--JQuery
  15. nginx 启动报错 “/var/run/nginx/nginx.pid" failed” 解决方法
  16. Jersey RESTful WebService框架学习(五)使用@BeanParam
  17. avcodec_open2()分析
  18. Mac terminal Javac
  19. Tomcat servers.xml 无注释版
  20. html,css,javascript角色划分

热门文章

  1. HDU 1718 Rank 排序
  2. python正则表达式-re模块的爱恨情仇
  3. 20165227 实验二《Java面向对象程序设计》实验报告
  4. 2016.6.18——Implement strStr()
  5. go 函数介绍
  6. sqlite3 的insert记录项思路
  7. 2017北京网络赛 Bounce GCD加找规律
  8. vue实现结算淘宝购物车效果
  9. 【前端】上拉加载更多dropload.min.js的使用
  10. python面向对象(五)之多态