1说明
ServletContextAware可以用来注入ServletContext。可以配合ApplicationRunner在服务启动的时候注入ServletContext,并往ServletContext中设置全局的属性。
每个应用都会有一个ServletContext对象与之关联,当容器分布在多个虚拟机上时,web应用在所分布的每个虚拟机上都拥有一个ServletContext实例
传统非spring的代码中,获取ServletContext的方法如下:
ServletContext sc = request.getSession().getServletContext();
//或者使用
//ServletContext sc = this.getServletContext();
2用例
以下代码是在某个bean中注入ServletContext的示例:
import javax.servlet.ServletContext;
import org.springframework.stereotype.Component;
import org.springframework.web.context.ServletContextAware;
@Component
public class UseOfServletContext implements ServletContextAware {
private ServletContext servletContext;
@Override
public void setServletContext(ServletContext servletContext) {
this.servletContext = servletContext;
}
public void setContextData(String data) {
servletContext.setAttribute("data1", data);
}
}