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规范

posted on 2016-10-14 09:59  winters86  阅读(156)  评论(0编辑  收藏  举报