Java ServletContext ServletContextAware InitializingBean

  ServletContext是一个全局的信息存储空间,服务器开始,其就存在,服务器关闭,其才释放.request,一个用户可以有多个,session,一个用户一个,而servletContext,所有用户公用一个.所以,为了节省空间,提高效率,在ServletCotext中放必须的,重要的所有用户需要共享的一些信息.

  Servlet上下文:Servlet上下文提供对应用程序中所有Servlet所共有的各种资源和功能的访问。Servlet上下文API用于设置应用程序中所有Servlet共有的信息。Servlet可能需要共享他们之间的共有信息。运行于同一服务器的Servlet有时会共享资源,如JSP页面、文件和其他Servlet。

servlet可以通过名称将对象属性绑定到上下文。任何绑定到上下文的属性可以被同一个web应用的其他servlet使用。ServletContext接口的下列方法允许访问这种功能:

setAttribute

getAttribute

getAttributeNames

removeAttribute

分布式容器中的上下文属性 上下文属性对于创建它们的VM来说是本地的。这防止ServletContext属性存储于分布式容器的共享内存中。当信息需要在运行于分布式环境中的servlet之间共享时,信息被放入会话中(参见第7章“会话”),存储于数据库中.

/**
 * 项目启动监听,全局配置信息初始化,存储
 * @author yangfei
 * 
 *
 */
@Component
public class StartupListener implements InitializingBean, ServletContextAware {
        ...
        ...
        @Override
    public void setServletContext(ServletContext servletContext) {
        this.servletContext = servletContext;
    }
    /**
     * InitializingBean 接口方法
     * 用于初始化工作
     */
    @Override
    public void afterPropertiesSet() throws Exception {
        loadParams();
        loadConfig();
    }

}                

  

原文地址:https://www.cnblogs.com/yangfei-beijing/p/6373857.html