Java 类org.springframework.beans.factory.access.SingletonBeanFactoryLocator 实例源码

项目:jspresso-ce    文件:AbstractStartup.java   
/**
 * Gets the applicationContext.
 *
 * @return the applicationContext.
 */
protected BeanFactory getApplicationContext() {
  try {
    if (applicationContext == null) {
      synchronized (LOCK) {
        if (applicationContext == null) {
          BeanFactoryLocator bfl = SingletonBeanFactoryLocator.getInstance(getBeanFactorySelector());
          BeanFactoryReference bf = bfl.useBeanFactory(getApplicationContextKey());
          BeanFactory tempApplicationContext = bf.getFactory();
          if (tempApplicationContext instanceof ConfigurableApplicationContext) {
            ((ConfigurableApplicationContext) tempApplicationContext).registerShutdownHook();
          }
          applicationContext = tempApplicationContext;
        }
      }
    }
    return applicationContext;
  } catch (RuntimeException ex) {
    LOG.error("{} context could not be instantiated.", getApplicationContextKey(), ex);
    throw ex;
  }
}
项目:jspresso-ce    文件:AbstractBeanFactoryAwareContextListener.java   
private BeanFactory getBeanFactory(ServletContextEvent event) {
  String beanFactorySelector = getBeanFactorySelector(event);
  String applicationContextKey = getApplicationContextKey(event);
  BeanFactoryLocator bfl = SingletonBeanFactoryLocator
      .getInstance(beanFactorySelector);
  BeanFactoryReference bf = bfl.useBeanFactory(applicationContextKey);
  BeanFactory beanFactory = bf.getFactory();
  if (beanFactory instanceof ConfigurableApplicationContext) {
    ((ConfigurableApplicationContext) beanFactory).registerShutdownHook();
  }
  return beanFactory;
}
项目:scriptella-etl    文件:EtlExecutorBean.java   
/**
 * This method obtains a global ThreadLocal class independent of the classloader (JVM-scope singleton).
 * The easiest solution is to use System.getProperties().get/put, but this solution violate
 * Properties contract and have other drawbacks.
 * <p>Current solution relies on the idea behind
 * {@link org.springframework.beans.factory.access.SingletonBeanFactoryLocator}. See also bug #4648
 *
 * @return Global ThreadLocal (JVM-scope singleton).
 */
@SuppressWarnings("unchecked")
private static ThreadLocal<BeanFactory> getGlobalThreadLocal() {
    BeanFactoryLocator locator = SingletonBeanFactoryLocator.getInstance(BEAN_FACTORY_XML_PATH);
    BeanFactoryReference ref = locator.useBeanFactory(FACTORY_BEAN_NAME);
    StaticApplicationContext ctx = (StaticApplicationContext) ref.getFactory();
    if (!ctx.containsBean(THREAD_LOCAL_BEAN_NAME)) {
        ctx.registerSingleton(THREAD_LOCAL_BEAN_NAME, ThreadLocal.class);
    }
    return (ThreadLocal) ctx.getBean(THREAD_LOCAL_BEAN_NAME);
}
项目:jspresso-ce    文件:ViewTester.java   
private ApplicationContext getApplicationContext() {
  BeanFactoryLocator bfl = SingletonBeanFactoryLocator
      .getInstance(beanFactorySelector);
  BeanFactoryReference bf = bfl.useBeanFactory(applicationContextKey);
  return (ApplicationContext) bf.getFactory();
}
项目:jspresso-ce    文件:EntityGenerator.java   
private BeanFactoryReference getBeanFactoryReference() {
  BeanFactoryLocator bfl = SingletonBeanFactoryLocator.getInstance(beanFactorySelector);
  BeanFactoryReference bf = bfl.useBeanFactory(applicationContextKey);
  return bf;
}
项目:sakuli    文件:BeanLoader.java   
private static BeanFactory getBeanFactory() {
    BeanFactoryLocator bfl = SingletonBeanFactoryLocator.getInstance(CONTEXT_PATH);
    bfl.useBeanFactory("org.sakuli.app.root");
    return getBeanFactoryReference().getFactory();
}
项目:sakuli    文件:BeanLoader.java   
private static BeanFactoryReference getBeanFactoryReference() {
    BeanFactoryLocator bfl = SingletonBeanFactoryLocator.getInstance(CONTEXT_PATH);
    return bfl.useBeanFactory("org.sakuli.app.root");
}