`
dongjun316
  • 浏览: 32725 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Spring单例和平常说的单例的区别

 
阅读更多

面试被问到Spring单例和平常说的单例的区别,该死的当时居然回答“不知道”,真白痴啊。

Spring中所谓的单例是指scope="singleton"的bean.

单例模式分为饿汉模式和懒汉模式:

饿汉模式
spring singleton的缺省是饿汉模式:启动容器时(即实例化容器时),为所有spring配置文件中定义的bean都生成一个实例
懒汉模式
在第一个请求时才生成一个实例,以后的请求都调用这个实例
spring singleton设置为懒汉模式:<beans default-lazy-init="true">

 

Spring中说的单例是相对于容器的,既在ApplicationContext中是单例的。而平常说的单例是相对于JVM的。另一个JVM可以有多个Spring容器,而且Spring中的单例也只是按bean的id来区分的。

 

 

分享到:
评论

相关推荐

    平时自己练习的源码

    下面将详细探讨Spring框架中的事务管理、Spring MVC和单例模式。 1. Spring事务管理:在Java应用程序中,事务处理是确保数据一致性的重要手段。Spring提供了声明式和编程式两种事务管理方式。声明式事务管理通过...

    百度官方面试题,这个同学面试了22k

    2. **集合框架**:ArrayList、LinkedList、HashSet、HashMap等容器的使用及其原理,了解它们之间的区别和应用场景。 3. **异常处理**:理解try-catch-finally语句块,异常分类,自定义异常,以及如何进行有效异常...

    java面试题

    例如,在Spring框架中使用XML进行Bean的定义和配置。 #### int和Integer的区别 - **int**:基本数据类型,值类型。 - **Integer**:包装类,对象类型,提供了更多的方法支持。 #### String和StringBuffer的区别 ...

    democollection:一些demo集合而已

    【描述】中的"ffff"可能是输入错误或者无意义的字符,而"自己平常试验所用"表明这个democollection是个人用于实验和学习的项目,可能包含了作者在掌握Java编程过程中创建的各种小程序或功能模块。这些代码实例可以...

    CodeInterView:CodeInterView,有些是我自己写的,有些是从Internet复制的

    - List、Set、Queue和Map接口的实现类,如ArrayList、LinkedList、HashSet、HashMap等的使用与区别。 - 集合的遍历方式,如迭代器和增强for循环。 - 集合的并发处理,了解ConcurrentHashMap和...

    framework

    对于Java开发者来说,理解并掌握这样的框架有助于提升自己的专业技能,也有助于在实际项目中快速高效地开发出高质量的应用。 同时,分析源码还能让你学习到软件工程方面的知识,如模块划分、代码组织、测试策略等。...

    parking-system:停车系统包括创建停车位并将这些位置按车辆类型分配给不同的车辆

    5. **设计模式**:可能应用到的设计模式有工厂模式(用于创建车位对象)、单例模式(为全局停车场提供唯一的管理者)和观察者模式(车辆状态改变时通知相关组件)。 6. **数据库交互**:为了持久化数据,系统通常会...

    Algodata-sesi-3

    10. **Java库和框架**:Java有丰富的库和框架,如Spring Framework用于企业级应用开发,JUnit用于单元测试,Apache Commons提供实用工具类等。了解和掌握这些工具可以提高开发效率。 资源包"Algodata-sesi-3-main...

    kitty

    同时,它也可能运用了Spring框架进行依赖注入,以实现松耦合和高可测试性。如果项目规模较大,那么可能还采用了微服务架构,通过拆分各个独立的服务来提高系统的可扩展性和维护性。 在"Kitty"中,我们还能预见到...

    ST0245-001

    8. **设计模式**:在ST0245-001中,可能会讲解一些经典的设计模式,如单例模式、工厂模式、观察者模式等,这些模式是解决常见问题的模板,有助于编写可维护和可扩展的代码。 9. **Java库和框架**:如Spring ...

    Java_Programs:在UG和PG中实现的所有Core和Advanced Java程序

    Java编程语言是软件开发领域的重要组成部分,尤其在大学本科(UG)和研究生(PG)教育中,Java被广泛用于教授核心和高级编程概念。"Java_Programs"这个压缩包文件很可能包含了各种Java程序示例,旨在帮助学生和...

    塔拉科灯塔

    13. **Spring框架**: Spring是Java开发中最受欢迎的框架之一,它简化了依赖注入、事务管理、AOP(面向切面编程)等任务。 14. **Maven/Gradle**: 这是两种流行的构建工具,帮助管理和构建Java项目,管理依赖关系。 ...

    OOKA

    10. **框架与库**: Java有许多流行框架,如Spring用于企业级应用开发,Struts和Hibernate用于Web应用,以及JUnit用于单元测试。"OOKA"可能就是这样一个自定义的框架或库,但具体功能需要查看源代码才能确定。 以上...

    MyTestProject

    在"MyTestProject"中,开发者可能在学习和应用Java的基础语法、类库、框架(如Spring)以及设计模式。 【压缩包子文件的文件名称列表】"MyTestProject-master" 提示我们这是项目的主要分支,通常在Git版本控制系统...

    Clean-Code-Study:TDD,重构,有效的Java,设计模式,框架

    常见的设计模式包括单例模式、工厂模式、观察者模式、装饰器模式和策略模式等。理解并熟练运用设计模式能够帮助开发者创建灵活、可扩展和易于维护的系统。 **框架** 框架是用于简化特定类型软件开发的工具,它们...

    C-Vdovlov-Evgeni-Smet-Matthew-Project-MHP:C-Widow-Evgeni-Smet-Matthew-Project-MHP

    7. **框架应用**: 项目可能使用Spring Framework进行后端开发,这是一个全面的企业级应用开发框架,支持依赖注入、AOP(面向切面编程)、Web MVC等特性。对于前端,可能会采用Bootstrap或AngularJS等库来增强用户...

Global site tag (gtag.js) - Google Analytics