SpringMVC 初始化网站静态信息
在网站开发中,一些元素经常被访问,例如 网页头部URL导航 的信息,以及Boot版权的信息,在各个页面都是重复出现的
如果每次渲染View都要通过Service层访问数据库 比较麻烦 也没有必要,但是通过Redis等缓存这些信息 又显得大材小用,且后台修改这些信息后 ,要对Redis缓存进行更新 麻烦也没有必要
所以一般这些信息都会被放在ServletContext中,便于JSP渲染时访问
@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规范