public class ClassReloadingXMLWebApplicationContext
extends org.springframework.web.context.support.XmlWebApplicationContext
implements org.apache.commons.jci.monitor.FilesystemAlterationListener
This class can be used instead of XmlWebApplicationContext, and it will watch jar files and directories for changes and reload then changed classes.
To use this class:
<context-param>
<param-name>contextClass</param-name>
<param-value>org.apache.struts2.spring.ClassReloadingXMLWebApplicationContext</param-value>
</context-param>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-jci-fam</artifactId>
<version>1.0</version>
<optional>true</optional>
</dependency>
| Modifier and Type | Field and Description |
|---|---|
protected ClassReloadingBeanFactory |
beanFactory |
protected ReloadingClassLoader |
classLoader |
protected org.apache.commons.jci.monitor.FilesystemAlterationMonitor |
filesystemAlterationMonitor |
DEFAULT_CONFIG_LOCATION, DEFAULT_CONFIG_LOCATION_PREFIX, DEFAULT_CONFIG_LOCATION_SUFFIXAPPLICATION_EVENT_MULTICASTER_BEAN_NAME, LIFECYCLE_PROCESSOR_BEAN_NAME, logger, MESSAGE_SOURCE_BEAN_NAMEAPPLICATION_CONTEXT_ID_PREFIX, SERVLET_CONFIG_BEAN_NAMECONTEXT_ATTRIBUTES_BEAN_NAME, CONTEXT_PARAMETERS_BEAN_NAME, ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, SCOPE_APPLICATION, SCOPE_GLOBAL_SESSION, SCOPE_REQUEST, SCOPE_SESSION, SERVLET_CONTEXT_BEAN_NAMECONFIG_LOCATION_DELIMITERS, CONVERSION_SERVICE_BEAN_NAME, ENVIRONMENT_BEAN_NAME, LOAD_TIME_WEAVER_BEAN_NAME, SYSTEM_ENVIRONMENT_BEAN_NAME, SYSTEM_PROPERTIES_BEAN_NAME| Constructor and Description |
|---|
ClassReloadingXMLWebApplicationContext() |
| Modifier and Type | Method and Description |
|---|---|
void |
close() |
protected org.springframework.beans.factory.support.DefaultListableBeanFactory |
createBeanFactory() |
ReloadingClassLoader |
getReloadingClassLoader() |
void |
onDirectoryChange(File file) |
void |
onDirectoryCreate(File file) |
void |
onDirectoryDelete(File file) |
void |
onFileChange(File file) |
void |
onFileCreate(File file) |
void |
onFileDelete(File file) |
void |
onStart(org.apache.commons.jci.monitor.FilesystemAlterationObserver filesystemAlterationObserver) |
void |
onStop(org.apache.commons.jci.monitor.FilesystemAlterationObserver filesystemAlterationObserver) |
protected void |
prepareBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory) |
void |
refresh() |
void |
setupReloading(String[] watchList,
String acceptClasses,
javax.servlet.ServletContext servletContext,
boolean reloadConfig) |
getDefaultConfigLocations, initBeanDefinitionReader, loadBeanDefinitions, loadBeanDefinitionscreateEnvironment, getApplicationName, getConfigLocations, getNamespace, getResourceByPath, getResourcePatternResolver, getServletConfig, getServletContext, getTheme, initPropertySources, onRefresh, postProcessBeanFactory, setNamespace, setServletConfig, setServletContextafterPropertiesSet, resolvePath, setBeanName, setConfigLocation, setConfigLocations, setIdassertBeanFactoryActive, cancelRefresh, closeBeanFactory, customizeBeanFactory, getBeanFactory, hasBeanFactory, refreshBeanFactory, setAllowBeanDefinitionOverriding, setAllowCircularReferencesaddApplicationListener, addBeanFactoryPostProcessor, containsBean, containsBeanDefinition, containsLocalBean, destroy, destroyBeans, doClose, findAnnotationOnBean, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getAutowireCapableBeanFactory, getBean, getBean, getBean, getBean, getBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanFactoryPostProcessors, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeansOfType, getBeansOfType, getBeansWithAnnotation, getDisplayName, getEnvironment, getId, getInternalParentBeanFactory, getInternalParentMessageSource, getMessage, getMessage, getMessage, getParent, getParentBeanFactory, getResources, getStartupDate, getType, initApplicationEventMulticaster, initLifecycleProcessor, initMessageSource, invokeBeanFactoryPostProcessors, isActive, isPrototype, isRunning, isSingleton, isTypeMatch, isTypeMatch, obtainFreshBeanFactory, onClose, prepareRefresh, publishEvent, publishEvent, publishEvent, registerBeanPostProcessors, registerListeners, registerShutdownHook, resetCommonCaches, setDisplayName, setEnvironment, setParent, start, stop, toStringaddProtocolResolver, getClassLoader, getProtocolResolvers, getResource, setClassLoaderclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitsetConfigLocation, setConfigLocationsaddApplicationListener, addBeanFactoryPostProcessor, addProtocolResolver, getBeanFactory, getEnvironment, isActive, registerShutdownHook, setEnvironment, setId, setParentgetAutowireCapableBeanFactory, getDisplayName, getId, getParent, getStartupDatecontainsBeanDefinition, findAnnotationOnBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeansOfType, getBeansOfType, getBeansWithAnnotationcontainsLocalBean, getParentBeanFactorycontainsBean, getAliases, getBean, getBean, getBean, getBean, getBean, getType, isPrototype, isSingleton, isTypeMatch, isTypeMatchgetMessage, getMessage, getMessagepublishEvent, publishEventgetResourcesprotected ReloadingClassLoader classLoader
protected org.apache.commons.jci.monitor.FilesystemAlterationMonitor filesystemAlterationMonitor
protected ClassReloadingBeanFactory beanFactory
public ClassReloadingXMLWebApplicationContext()
public void setupReloading(String[] watchList, String acceptClasses, javax.servlet.ServletContext servletContext, boolean reloadConfig)
public void close()
close in interface Closeableclose in interface AutoCloseableclose in interface org.springframework.context.ConfigurableApplicationContextclose in class org.springframework.context.support.AbstractApplicationContextpublic void refresh()
throws org.springframework.beans.BeansException,
IllegalStateException
refresh in interface org.springframework.context.ConfigurableApplicationContextrefresh in class org.springframework.context.support.AbstractApplicationContextorg.springframework.beans.BeansExceptionIllegalStateExceptionprotected org.springframework.beans.factory.support.DefaultListableBeanFactory createBeanFactory()
createBeanFactory in class org.springframework.context.support.AbstractRefreshableApplicationContextprotected void prepareBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)
prepareBeanFactory in class org.springframework.context.support.AbstractApplicationContextpublic void onDirectoryChange(File file)
onDirectoryChange in interface org.apache.commons.jci.monitor.FilesystemAlterationListenerpublic void onDirectoryCreate(File file)
onDirectoryCreate in interface org.apache.commons.jci.monitor.FilesystemAlterationListenerpublic void onDirectoryDelete(File file)
onDirectoryDelete in interface org.apache.commons.jci.monitor.FilesystemAlterationListenerpublic void onFileChange(File file)
onFileChange in interface org.apache.commons.jci.monitor.FilesystemAlterationListenerpublic void onFileCreate(File file)
onFileCreate in interface org.apache.commons.jci.monitor.FilesystemAlterationListenerpublic void onFileDelete(File file)
onFileDelete in interface org.apache.commons.jci.monitor.FilesystemAlterationListenerpublic void onStart(org.apache.commons.jci.monitor.FilesystemAlterationObserver filesystemAlterationObserver)
onStart in interface org.apache.commons.jci.monitor.FilesystemAlterationListenerpublic void onStop(org.apache.commons.jci.monitor.FilesystemAlterationObserver filesystemAlterationObserver)
onStop in interface org.apache.commons.jci.monitor.FilesystemAlterationListenerpublic ReloadingClassLoader getReloadingClassLoader()
Copyright © 2000–2019 Apache Software Foundation. All rights reserved.