Spring IOC 初始化刷新流程:https://www.cnblogs.com/jhxxb/p/13609289.html
模版方法。因为 beanFactory 都准备好了,子类可以去实现自己的逻辑。
比如一些 Web 的 ApplicationContext,就实现了自己的逻辑,做一些 Web 相关的事情。此处是 Web 环境下,因此会进 AbstractRefreshableWebApplicationContext#postProcessBeanFactory 方法
方法源码
public abstract class AbstractRefreshableWebApplicationContext extends AbstractRefreshableConfigApplicationContext implements ConfigurableWebApplicationContext, ThemeSource { @Override protected void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) { // 注册 ServletContextAwareProcessor,这样任意 Bean 都可以很方便的获取到 ServletContext,同时忽略另外两个,因为 ServletContextAwareProcessor 把事情都做了 beanFactory.addBeanPostProcessor(new ServletContextAwareProcessor(this.servletContext, this.servletConfig)); beanFactory.ignoreDependencyInterface(ServletContextAware.class); beanFactory.ignoreDependencyInterface(ServletConfigAware.class); // 注册 Web 环境,包括 request、session、golableSession、application WebApplicationContextUtils.registerWebApplicationScopes(beanFactory, this.servletContext); // 注册 servletContext、contextParamters、contextAttributes、servletConfig 单例 bean WebApplicationContextUtils.registerEnvironmentBeans(beanFactory, this.servletContext, this.servletConfig); }
Spring MVC 工具类
CookieGenerator
生成 Cookie 的
HtmlUtils
对页面上提交的特殊字符进行 html 转码
JavaScriptUtils
将 JavaScript 特殊字符转换为转义字符