首先申明,这年头资料网上随便copy,勿怪!
单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例。
特点:
1,一个类只能有一个实例
2,自己创建这个实例
3,整个系统都要使用这个实例
解释:
譬如每台计算机可以有若干个打印机,但只能有一个Printer Spooler( 管理所有本地和网络打印队列及控制所有打印工作), 以避免两个打印作业同时输出到打印机中。
例子:
第一种形式: 也是常用的形式。
public class Singleton {
private static Singleton instance = null;
private Singleton()
{ //do something }
//这个方法比下面的有所改进,不用每次都进行生成对象,只是第一次使用时生成实例,提高了效率
public static Singleton getInstance(){
if(instance==null){
instance = new Singleton();
}
return instance;
}
}
第二种形式:
public class Singleton {
//在自己内部定义自己的一个实例,只供内部调用
private static Singleton instance = new Singleton();
private Singleton()
//do something }
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance()
{
return instance;
}
}
=======singleton bean和singleton模式区别=============================
spring
项目加载的时候bean(一个bean对应某个类)自动创建(初始化,建一个实例),而后是每次调用bean的时候是注入的(不是重新new。。所有整个系统都是这个实例,,而且是spring自动提供的)
一:对于Spring中实现Singleton模式,是以IOC容器为单位(就是说在这个容器里面bean实现Singleton),换句话说,一个JVM可能有多个IOC容器,而在这个容器里实现了singleton bean,
而Java中实现Singleton模式而言,只有一个JVM,jvm中某个class只有一个实例
二:
singleton模式中,singleton的class在整个JVM中只有一个instance,
Spring的Bean,你可以一个class配置多个Bean,这个class就有了多个instance。
这个singleton是指在spring容器中,这个Bean是单实例的,是线程共享的。所以要求这些类都是线程安全的。也就是说,不能出现修改Bean属性的方法,当然除了设值得那些setter。只要满足线程安全,这些bean都可以用singleton。而且我们在绝大多数使用上,也是这样用的,包括dao,service。
Beanfactory是Spring初始以静态方式载入的,Spring的单例IOC是基于容器级的,所以这你都不用担心与考虑.
分享到:
相关推荐
主要介绍了浅谈Spring单例Bean与单例模式的区别,具有一定借鉴价值,需要的朋友可以参考下
单例模式,完整介绍单例模式的几种创建方式 以及对比优缺点,引用spring 源码简单分析 框架如何保证单例
单例多例
【设计模式】(四)–创建型模式–单例模式单例模式的定义饿汉式单例模式懒汉式单例模式饿汉式与懒汉式的区别:单例模式的优点单例模式的缺点Java中其他生成单例的方式使用Spring框架,Spring框架默认就是单例双重...
单例模式保证了Bean实例的唯一性,而适配器模式和装饰器模式则提高了代码的可扩展性和可重用性。代理模式和观察者模式在Spring AOP和事件驱动模型中得到了广泛应用,提供了强大的切面和事件处理能力。策略模式和模板...
不让第二步和第三步重排序-DoubleCheck方案二:基于类初始化-静态内部类饿汉式饿汉式与懒汉式最大区别序列化破坏单例模式原理枚举单例基于容器的单例模式基于TreadLocal线程单例源码分析-JDK源码分析-spring其他相关...
1 单例模式 2 责任链模式 3 策略模式 4 模板方法模式 5 工厂方法模式 6 抽象工厂模式 7 建造者模式 8 代理模式 9 装饰模式 10 原型模式 11 委派模式 12 适配器模式 设计模式综合运用 1 门面+模版方法+责任链+策略 2 ...
1.模式定义/应用场景/类图分析 2.字节码知识/字节码指令重排序 3.类加载机制 4.JVM序列化机制 5.单例模式在Spring框架 & JDK源码中的应用
本资源是spring的小例子程序,共包括以下7个: 数据访问对象模式(DAO) 工厂模式(factory) ...单例模式(singleton) 策略模式(strategy) 模板模式(template) 另外还有一个关于动态代理的小例子
JAVA例单模式源码PF4J - Spring 框架集成 该项目是与如何与 Spring Framework 集成相关的概念证明。 组件 ExtensionsInjector允许 PF4J 的扩展作为 Spring bean 公开。 如果您的插件包含 Spring bean,则Spring...
1.简单工厂 2.工厂方法 3.单例模式 4.适配器模式 5.装饰器模式 6.代理模式 7.观察者模式 8.策略模式 9.模版方法模式 1.简单工厂 2.工厂方
spring的设计思想是,单例模式和工厂模式 2 spring的四大特点(优点) 轻量级,低侵入的设计 Spring的DI机制降低了业务对象替换的复杂性 spring不依赖于web容器,独立于各种应用服务器, Write Once,Run Anywhere...
NULL 博文链接:https://java--hhf.iteye.com/blog/2171034
*此系统主要是为了实践Spring的相关技术,其中包含:IOC,DI,AOP 以及一些其他的技术:...*涉及到的设计模式有:单例模式,工厂模式,代理模式,模板模式,MVC模式等等 *注意:此系统未提供数据库文件,仅供学习参考
观察者模式 Observer:Swing中的事件模型 工厂模式 Factory:在JDK中遍地都是,比如JDBC、JNDI等,是学习Spring的基础 命令模式 Command:Struts框架的基石 单例模式 Singleton:最简单的设计模式,大量...
IOC详解,Spring环境搭建,Spring创建Bean的三种方式,scope属性详解(包含单例设计模式),DI详解,Spring的几种注入方式,利用Spring简化Mybatis;第二天内容:AOP(AOP常用概念、Spring的三种aop实现方式、代理...
3.设计模式Design Pattern:创建型模式(厂模式Factory、抽象工厂模式Abstract Factory、单例模式Singleton、建造者模式Builder、原型模式Prototype和对象池模式Object Pool Pattern)、结构型模式(适配器模式、...
Spring源码分析,web源码分析,Tomcat架构源码分析都是非常深入的源码级课程,期待研究设计模式和深入学习源码内功的朋友们,一定要仔细的学习研究。 (0);目录中文件数:1个 ├─3.代码.zip (1)\1.笔记;目录中文...
单例模式是将将构造方法限定为private避免了类在外部被实例化,在同一个虚拟机范围内,Singleton的唯一实例只能通过提供的入口获得[例如getInstance()方法], 事实上,通过Java反射机制是能够实例化构造方法为private...
介绍SpringIOC/AOP及实现当场去世Spring MVC实现当场去世设计模式单例模式观察者模式工厂模式简单工厂工厂方法抽象工厂不懂Interface &