java - 关于spring容器热切单例设计模式

标签 java spring design-patterns

我已经为spring开发了一个实用类,它是一个单例,它将为整个应用程序提供容器的引用,下面是我的类..

public class SpringUtility 
{
    private static BeanFactory factory ;
    static
    {try
        {BeanFactory factory = new XmlBeanFactory(new FileSystemResource("Spring.xml"));
        }   catch(Exception e) 
        {
            e.printStackTrace();
        }
    }

    private SpringUtility() 
    {}

    public static BeanFactory getBeanFactory()
    {       return factory;
    }}

现在请告知我想将其转换为急切的单例样式,请告知如何实现。请告知如何将同一个类转换为急切的单例设计模式,例如正常的急切设计模式是..

public class SingletonEager {

    private final static SingletonEager INSTANCE = new SingletonEager();

    private SingletonEager() {
    }

    public static SingletonEager getInstance() {
        return SingletonEager.INSTANCE;
    }

    protected Object clone() throws CloneNotSupportedException {
        throw new CloneNotSupportedException();
    }
}

类似的方法我也想要 Spring 的,请指教

最佳答案

如果你想让 BeanFactory 从 Spring 上下文中获取 beans,那么我建议你实现 BeanFactoryAware , 它将保持单例并急切加载

public class BeanManager implements BeanFactoryAware {

  private BeanFactory beanFactory;

  public Person getPerson(){ beanFactory.getBean(Person.class) ;}   

}

并将这个BeanManager类标记为spring bean

关于java - 关于spring容器热切单例设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11291029/

相关文章:

java - 如何在 Java Google App Engine 中检查传入电子邮件的 DKIM 签名

java - 使用 JOptionPane 显示容纳的数组

java - spring mvc生成的pdf文件生成后如何直接保存到数据库中?

java - 我可以在 cucumber 测试中使用 Spring 自动连接 Controller 吗?

actionscript-3 - 管理数据、类或数组的首选方式?

java - 如何在我的 spring 3.2 和 hibernate 4 集成项目上为 java 配置实现 AbstractAnnotationConfigDispatcherServletInitializer?

java - Spring Data JPA - 将@Query 与多对多关系/连接表结合使用

ios - 如何使用工厂设计模式使用自定义参数初始化 View Controller

oop - 学习/实现设计模式(针对新手)

java - Spring - JMS,如何在应用程序启动后启动 JMS 并在应用程序关闭时不断尝试重新连接