Java 在同时执行的Spring控制器中,两种方法只有一个数据获取的最佳方法
在Spring MVC中,我有两种方法:Java 在同时执行的Spring控制器中,两种方法只有一个数据获取的最佳方法,java,spring,hibernate,spring-mvc,architecture,Java,Spring,Hibernate,Spring Mvc,Architecture,在Spring MVC中,我有两种方法: public ModelAndView getLegislations(HttpServletRequest request,HttpServletResponse response) { List list = getLegistService().fetchLislation(); // returns model and view object } public ModelAndView getLegislationsJSON(
public ModelAndView getLegislations(HttpServletRequest
request,HttpServletResponse response) {
List list = getLegistService().fetchLislation();
// returns model and view object
}
public ModelAndView getLegislationsJSON(HttpServletRequest request,
HttpServletResponse response) throws Exception {
List list = getLegistService().fetchLislation()
// returns JSON Object
}
使用jqueryajax同时执行这两种方法。
一个返回modelandview对象,另一个返回JSON
对于这两种方法,只有一个数据获取的最佳方式是什么。我之所以需要它,是因为getLegistService().fetchLisation()
提供的结果是相同的。
谢谢使用服务后面的缓存-查询缓存。例如,在EclipseLink中,您有“查询结果缓存”。在Hibernate[1]中,必须将以下内容添加到persistence.xml中:
<property name="hibernate.cache.use_query_cache" value="true"/>
但您也可以使用guava缓存或其他东西实现自己的缓存。然后,您的服务将获取发送到缓存,而不是直接询问DB[2]
[1]
[2] 根据您的服务方法,我看不到传递任何参数,因此它是一种常量数据,使用web服务器范围进行缓存就足够了
- 如果后端的数据没有增长,那么可以将
列出应用程序范围中的对象,因此请尝试从 如果应用程序sope不存在,则点击数据库,获取数据并将其放入数据库 在应用程序范围中,然后返回此缓存 数据
如果数据在增长,那么考虑变量是什么,使用会话
范围和遵循与上述相同的状态