MyParametrizedSingletonClass

MyParametrizedSingletonClass

我需要在2个不同的类中两次从同一ApplicationContext中获取一个Singleton bean。

片段示例:

CLass A {
  public void foo(){
    ApplicationContext context = new ClassPathXmlApplicationContext("common.spring.xml");
    MyParametrizedSingletonClass myParametrizedSingletonClass = (MyParametrizedSingletonClass) context.getBean("myParametrizedSingletonClass");
    // do more stuff..
  }
CLass B {
  public void bar(){
    ApplicationContext context = new ClassPathXmlApplicationContext("common.spring.xml");
    MyParametrizedSingletonClass myParametrizedSingletonClass = (MyParametrizedSingletonClass) context.getBean("myParametrizedSingletonClass");
    // do more stuff..
  }


由于MyParametrizedSingletonClass是单例,因此如果针对相同的构造函数参数多次调用其构造函数,则会引发错误。

如何使用Spring缓存和重用ApplicationContext?

最佳答案

您正在创建两个不同的上下文,因此即使bean是单例的,它也会为每个上下文创建一个实例,

如果要缓存应用程序上下文you can create a class and provide singleton instance of application context

10-07 23:38