在网站开发中,一些元素常常被访问,例如 网页头部URL导航 的信息,以及Boot版权的信息,在各个页面都是重复出现的数据库
若是每次渲染View都要经过Service层访问数据库 比较麻烦 也没有必要,可是经过Redis等缓存这些信息 又显得大材小用,且后台修改这些信息后 ,要对Redis缓存进行更新 麻烦也没有必要缓存
因此通常这些信息都会被放在ServletContext中,便于JSP渲染时访问app
@Service public class WebConfigProp implements ApplicationContextAware,ServletContextAware {//实现ServletContextAware感知, public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { //这里能够得到Spring的上下文,经过applicationContext能够得到Bean的实例,经过调用Service层的bean来初始化网站信息 } public void setServletContext(ServletContext servletContext) {//这样Spring在加载这个Service的时候 就会调用 setServletContext方法
servletContext.setAttribute("SiteName","Winters");
}
}
${SiteName}
这样在全部的JSP页面的任意位置均可以经过 网站
${SiteName} 得到 Winters一样的servletContext.setAttribute的第二个参数能够设置成对象不过这个对象的类要遵照Java 的getter setter规范