`
安之若素
  • 浏览: 143480 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

spring 的单例模式

阅读更多

原文地址:http://blog.sina.com.cn/s/blog_6151984a0100kfij.html

 

 

  • singleton---单例模式
单例模式,在spring 中其实是scope(作用范围)参数的缺省设定值
每个bean定义只生成一个对象实例,每次getBean请求获得的都是此实例

  • 单例模式分为饿汉模式和懒汉模式
饿汉模式
spring singleton的缺省是饿汉模式:启动容器时(即实例化容器时),为所有spring配置文件中定义的bean都生成一个实例
懒汉模式
在第一个请求时才生成一个实例,以后的请求都调用这个实例
spring singleton设置为懒汉模式:

<beans
default-lazy-init="true">


  • 另一种和singleton对应的scope值---prototype多实例模式
调用getBean时,就new一个新实例

  • singleton和prototype的比较
singleton
xml配置文件:
<bean id="dvdTypeDAO" class="com.machome.hibernate.impl.DvdTypeDAOImpl" />   
测试代码:
        ctx = new ClassPathXmlApplicationContext("spring-hibernate-mysql.xml");
        DvdTypeDAO tDao1 = (DvdTypeDAO)ctx.getBean("dvdTypeDAO");
        DvdTypeDAO tDao2 = (DvdTypeDAO)ctx.getBean("dvdTypeDAO");
运行:        
true
com.machome.hibernate.impl.DvdTypeDAOImpl@15b0333
com.machome.hibernate.impl.DvdTypeDAOImpl@15b0333

说明前后两次getBean()获得的是同一实例,说明spring缺省是单例

prototype
<bean id="dvdTypeDAO" class="com.machome.hibernate.impl.DvdTypeDAOImpl" scope="prototype" />
 
执行同样的测试代码
运行:
false
com.machome.hibernate.impl.DvdTypeDAOImpl@afae4a
com.machome.hibernate.impl.DvdTypeDAOImpl@1db9852
说明scope="prototype"后,每次getBean()的都是不同的新实例


分享到:
评论

相关推荐

    浅谈Spring单例Bean与单例模式的区别

    主要介绍了浅谈Spring单例Bean与单例模式的区别,具有一定借鉴价值,需要的朋友可以参考下

    常见设计模式-单例模式

    单例模式,完整介绍单例模式的几种创建方式 以及对比优缺点,引用spring 源码简单分析 框架如何保证单例

    单例多例模式

    单例多例

    【设计模式】(四)–创建型模式–单例模式

    【设计模式】(四)–创建型模式–单例模式单例模式的定义饿汉式单例模式懒汉式单例模式饿汉式与懒汉式的区别:单例模式的优点单例模式的缺点Java中其他生成单例的方式使用Spring框架,Spring框架默认就是单例双重...

    掌握Spring设计模式:Java工程师必备指南

    单例模式保证了Bean实例的唯一性,而适配器模式和装饰器模式则提高了代码的可扩展性和可重用性。代理模式和观察者模式在Spring AOP和事件驱动模型中得到了广泛应用,提供了强大的切面和事件处理能力。策略模式和模板...

    【Java设计模式】你对单例模式了解多少,一文深入探究

    不让第二步和第三步重排序-DoubleCheck方案二:基于类初始化-静态内部类饿汉式饿汉式与懒汉式最大区别序列化破坏单例模式原理枚举单例基于容器的单例模式基于TreadLocal线程单例源码分析-JDK源码分析-spring其他相关...

    Java 经典设计模式讲解以及项目实战

    1 单例模式 2 责任链模式 3 策略模式 4 模板方法模式 5 工厂方法模式 6 抽象工厂模式 7 建造者模式 8 代理模式 9 装饰模式 10 原型模式 11 委派模式 12 适配器模式 设计模式综合运用 1 门面+模版方法+责任链+策略 2 ...

    1.设计模式-单例设计模式1

    1.模式定义/应用场景/类图分析 2.字节码知识/字节码指令重排序 3.类加载机制 4.JVM序列化机制 5.单例模式在Spring框架 & JDK源码中的应用

    spring中的基本设计模式

    本资源是spring的小例子程序,共包括以下7个: 数据访问对象模式(DAO) 工厂模式(factory) ...单例模式(singleton) 策略模式(strategy) 模板模式(template) 另外还有一个关于动态代理的小例子

    JAVA单例模式源码-pf4j-spring:Spring插件框架(PF4J-Spring框架集成)

    JAVA例单模式源码PF4J - Spring 框架集成 该项目是与如何与 Spring Framework 集成相关的概念证明。 组件 ExtensionsInjector允许 PF4J 的扩展作为 Spring bean 公开。 如果您的插件包含 Spring bean,则Spring...

    Spring 设计模式总结1

    1.简单工厂 2.工厂方法 3.单例模式 4.适配器模式 5.装饰器模式 6.代理模式 7.观察者模式 8.策略模式 9.模版方法模式 1.简单工厂 2.工厂方

    Spring详细学习资料下载

    spring的设计思想是,单例模式和工厂模式 2 spring的四大特点(优点) 轻量级,低侵入的设计 Spring的DI机制降低了业务对象替换的复杂性 spring不依赖于web容器,独立于各种应用服务器, Write Once,Run Anywhere...

    用enum实现单例模式的方法来读取配置文件

    NULL 博文链接:https://java--hhf.iteye.com/blog/2171034

    在线考试管理系统(部分功能)

    *此系统主要是为了实践Spring的相关技术,其中包含:IOC,DI,AOP 以及一些其他的技术:...*涉及到的设计模式有:单例模式,工厂模式,代理模式,模板模式,MVC模式等等 *注意:此系统未提供数据库文件,仅供学习参考

    面向对象初学者必须掌握的几种设计模式

    观察者模式 Observer:Swing中的事件模型 工厂模式 Factory:在JDK中遍地都是,比如JDBC、JNDI等,是学习Spring的基础 命令模式 Command:Struts框架的基石 单例模式 Singleton:最简单的设计模式,大量...

    吴天雄--Spring笔记.doc

    IOC详解,Spring环境搭建,Spring创建Bean的三种方式,scope属性详解(包含单例设计模式),DI详解,Spring的几种注入方式,利用Spring简化Mybatis;第二天内容:AOP(AOP常用概念、Spring的三种aop实现方式、代理...

    软件体系结构与设计模式课堂笔记.docx

    3.设计模式Design Pattern:创建型模式(厂模式Factory、抽象工厂模式Abstract Factory、单例模式Singleton、建造者模式Builder、原型模式Prototype和对象池模式Object Pool Pattern)、结构型模式(适配器模式、...

    最新设计模式超级详解+Tomcat架构源码分析+Spring源码分析 资深级设计模型课程

    Spring源码分析,web源码分析,Tomcat架构源码分析都是非常深入的源码级课程,期待研究设计模式和深入学习源码内功的朋友们,一定要仔细的学习研究。 (0);目录中文件数:1个 ├─3.代码.zip (1)\1.笔记;目录中文...

    设计模式的代码样例

    单例模式是将将构造方法限定为private避免了类在外部被实例化,在同一个虚拟机范围内,Singleton的唯一实例只能通过提供的入口获得[例如getInstance()方法], 事实上,通过Java反射机制是能够实例化构造方法为private...

    cxxIEG二面1

    介绍SpringIOC/AOP及实现当场去世Spring MVC实现当场去世设计模式单例模式观察者模式工厂模式简单工厂工厂方法抽象工厂不懂Interface &

Global site tag (gtag.js) - Google Analytics