strust2中是如何初始化container并且使其全局单例?
StrutsPrepareAndExecuteFilter
protected PrepareOperations prepare;
protected ExecuteOperations execute;
Dispatcher dispatcher = init.initDispatcher(config);
init()
Container container = init_PreloadConfiguration();
private Container init_PreloadConfiguration() {
Configuration config = configurationManager.getConfiguration();
Container container = config.getContainer();
boolean reloadi18n = Boolean.valueOf(container.getInstance(String.class, StrutsConstants.STRUTS_I18N_RELOAD));
LocalizedTextUtil.setReloadBundles(reloadi18n);
return container;
}
Configuration config = configurationManager.getConfiguration();
Container container = config.getContainer();
public synchronized Configuration getConfiguration() {
if (configuration == null) {
setConfiguration(createConfiguration(defaultFrameworkBeanName));
try {
configuration.reloadContainer(getContainerProviders());
} catch (ConfigurationException e) {
setConfiguration(null);
throw new ConfigurationException("Unable to load configuration.", e);
}
} else {
conditionalReload(configuration.getContainer());
}
return configuration;
}
....
prepare = new PrepareOperations(filterConfig.getServletContext(), dispatcher);
execute = new ExecuteOperations(filterConfig.getServletContext(), dispatcher);
Struts2容器初始化
本文详细介绍了Struts2框架中容器(Container)的初始化过程,并解释了如何实现全局单例模式。通过StrutsPrepareAndExecuteFilter类,利用init_PreloadConfiguration方法进行配置加载,确保了容器在应用启动时被正确初始化。
3042

被折叠的 条评论
为什么被折叠?



