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");
}