jjzjj

singletons

全部标签

php - 是否可以在 PHP 中定义接口(interface) Singleton?

我想定义一个Singleton基类型,用户将从中派生他的类,所以这就是我的想法:interfaceSingletonInterface{publicstaticfunctiongetInstance();}abstractclassSingletonAbstractimplementsSingletonInterface{abstractprotectedfunction__construct();finalprivatefunction__clone(){}}但是使用这种方法,用户可以实现这个单例......classBadImplimplementsSingletonInterfa

java - @Singleton、@Startup、@PostConstruct 不适用于 EJB3.1 和 Glassfishv3.0.1

我的设置有问题,我什至无法查看日志。这是我的@Singleton@StartupEJB:@Singleton@Startup@DependsOn("SchedulerEJB")publicclassSchedulerStartUp{privatestaticLoggerlog=Logger.getLogger(SchedulerStartUp.class);@EJBSchedulerEJBschedEJB;@PostConstructpublicvoidatStartup(){log.info("startUp")System.out.println("startUp");schedE

Java Singleton.getInstance() 返回空值?

我尝试使用这个单例,但getInstance显然可以返回null:classSingleton{publicstaticfinalStringK_LEVEL="level";staticSingletoninstance=newSingleton();privateintlevel;staticSingletongetInstance(){returninstance;}intgetLevel(){returnlevel;}voidincrementLevel(){System.out.println("LEVELINCREASEDTO"+++level);}voidaddToLeve

java - 避免多个 Singleton 实例?

这个问题在这里已经有了答案:WhatisanefficientwaytoimplementasingletonpatterninJava?[closed](29个答案)关闭8年前。我相信,当一个单例对象被序列化,然后被连续多次反序列化时,会创建多个单例实例。如何避免这种情况?

java - Servlet : Singleton, 单线程或多实例多线程

这个问题之前有人问过,也讨论过,但我想再问一下。Servlet是否是单例?根据我的说法,它们仅由容器初始化,但它们仍然不是单例??为什么??Servlets是单线程还是多线程(忘记javax.servlet.SingleThreadModel类)即当对单个servlet有多个请求时会发生什么?如果它们同时执行,那就意味着它是多线程的??如果它是多线程的,那么每个线程都会有一个servlet实例,这与第一点矛盾!!我认为,每当有新请求时,容器都会为传入的请求创建一个新线程,比如Req1,因为它会调用或分派(dispatch)控件到servlet的服务方法。现在这个执行是同时发生的……我猜

java - javax.ejb.Singleton在集群环境下单例如何?

我需要为集群环境中的所有用户和所有节点维护一个在应用程序中唯一的简单计数器。我考虑过像这样使用单例sessionbean注释javax.ejb.Singleton:packagefoo;importjavax.ejb.Singleton;@SingletonpublicclassBean{privateintcounter;[...]}这看起来很简单,但如果它在集群环境中按预期工作,我找不到答案。集群的每个节点是否都有自己的实例?当然,我可以将bean持久保存在数据库中,但它实际上只是一个计数器,这样做就太过分了。此外,我希望计数器在应用程序崩溃或重新启动时重置,因此坚持使用它会产生比

java - 在 Spring MVC Controller 层中,@Scope ("prototype") 与 @Scope ("singleton")

我有以下使用SpringMVC的Controller代码:@Controller@Scope("prototype")@RequestMapping("/messages")publicclassMessageController{@RequestMapping(value="/index",method=RequestMethod.GET)@ResponseStatus(HttpStatus.OK)@ResponseBodypublicStringdisplayAllMessages(ModelMapmodel){System.out.println(this.hashCode())

java - 为什么在生产者中使用 @Singleton 而不是 @ApplicationScoped?

LoggerProducer.java是一个用于生成要注入(inject)CDIbean中的记录器的类:@InjectLoggerLOG;完整代码:importjavax.ejb.Singleton;/***@authorrveldpau*/@SingletonpublicclassLoggerProducer{privateMaploggers=newHashMap();@ProducespublicLoggergetProducer(InjectionPointip){Stringkey=getKeyFromIp(ip);if(!loggers.containsKey(key)){

java - 我们什么时候应该在 Java 中使用 Singleton 类?

按照我的想法,当我们在整个应用程序中共享相同的对象状态时,我们应该创建一个单例类。在那种情况下,我们希望用户限制每次都创建一个新实例,这样他们就无法维护多个状态。同意。但是可以通过将实例变量声明为静态来实现相同的行为。在我看来,无论是cacheobjectcontainer、logger还是Classloader类,它都将起到相同的作用。请帮助我理解上面的概念,其中静态实例变量不能解决目的并且需要将类声明为Singleton?编辑部分好吧,让我更清楚一点。单例类的目的是跨jvm只保留单例类的一个实例。同意。但我想想想为什么我们只想保留一个实例。可能有两个原因:1)对象的创建成本可能很高

java - 为什么 private static field = new Singleton 在 Java 中不懒惰?

我看了很多关于Singleton的文章,其中大部分作者都说Java中Singleton的这种变体:publicclassSingleton{privatestaticSingletoninstance=newSingleton();privateSingleton(){}publicstaticSingletongetInstance(){returninstance;}}是不懒惰(然后是EAGER)。但我不明白为什么,Singleton()构造函数只会在Singleton类初始化时被调用。我知道几个可以触发类初始化的原因:将new与构造函数一起使用(但在这种情况下,构造函数是私有(p