Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring MVC 3.x设置全局数据_Java_Spring_Spring Mvc - Fatal编程技术网

Java Spring MVC 3.x设置全局数据

Java Spring MVC 3.x设置全局数据,java,spring,spring-mvc,Java,Spring,Spring Mvc,我有两种不同的模式运行国际化模块和应用程序。要更改模式,我们需要重新启动tomcat服务器。模式1支持两种语言,模式2支持5种语言。这些语言存储在.json文件中 每次用户点击index.html,我都会在该页面的@RequestMapping中检查应用程序模式。基于这种应用模式,我读取了正确的.json文件。提取语言列表并在模型中进行设置,然后将页面返回给客户机 这种方法的问题是——每次我点击index.html文件时,应用程序都会从磁盘读取该文件。这不仅是不必要的,而且很费时,它给我的开发者

我有两种不同的模式运行国际化模块和应用程序。要更改模式,我们需要重新启动tomcat服务器。模式1支持两种语言,模式2支持5种语言。这些语言存储在
.json
文件中

每次用户点击
index.html
,我都会在该页面的
@RequestMapping
中检查应用程序模式。基于这种应用模式,我读取了正确的
.json
文件。提取语言列表并在模型中进行设置,然后将页面返回给客户机

这种方法的问题是——每次我点击index.html文件时,应用程序都会从磁盘读取该文件。这不仅是不必要的,而且很费时,它给我的开发者自我敲响了恼人的警钟

我想要的是,当应用程序启动时,我知道应用程序模式

如何让SpringMVC在开始时读取文件并在服务器运行时存储这些数据?有可能吗

如果是的话,你能让我知道我需要研究SpringMVC的哪些部分吗


我读过关于
HandlerInterceptor
@modeldattribute
的文章,但它只说明了如何在每个请求中插入数据。然而,我真正想知道的是如何将从文件中读取的数据持久化一次。

其中一种方法可能是使用bean,它执行
初始化bean
并在'afterPropertiesSet'方法中加载文件。它还有一个返回语言列表的方法,可以连接到所有其他需要它的bean中。 您也可以在“HandlerInterceptor”中执行,只需让它实现
InitializingBean
,并将列表存储在类变量中

e、 g

public MyInterceptor扩展HandlerInterceptorAdaptor实现初始化bean{
私有列表语言列表;
@凌驾
void postHandle(HttpServletRequest请求,
HttpServletResponse,
对象处理程序,
模型和视图(模型和视图)
抛出异常{
//在模型中设置列表
} 
@凌驾
公共无效AfterPropertiesSet(){
languageList=…;//读取文件
} 
}
public MyInterceptor extends HandlerInterceptorAdaptor implements  InitializingBean {
   private List<String> languageList;

   @Override
   void postHandle(HttpServletRequest request,
                HttpServletResponse response,
                Object handler,
                ModelAndView modelAndView)
         throws Exception {

        //set list in the model
    } 

   @Override
   public void afterPropetiesSet() {
         languageList=...; //read file
   } 
}