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