gpt4 book ai didi

java - 在 Spring Controller 中同时执行两种方法时只有一次数据获取的最佳方法

转载 作者:太空宇宙 更新时间:2023-11-04 13:53:52 25 4
gpt4 key购买 nike

在 Spring MVC 中,我有两种方法:

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
}

这两个方法都是使用 jQuery Ajax 同时执行的。一个返回 modelandview 对象,另一个返回 JSON。

两种方法只有一次数据获取的最佳方法是什么。我需要这个,因为 getLegistService().fetchLislation() 提供的结果是相同的。谢谢

最佳答案

在服务后面使用缓存 - 查询缓存。例如。在 EclipseLink 中,您有“查询结果缓存”。在 Hibernate [1] 中,您必须将其添加到 persistence.xml 中:

<property name="hibernate.cache.use_query_cache" value="true"/>

但是你也可以使用 Guava 缓存或其他东西来实现你自己的缓存。然后,您的服务将获取数据发送到缓存,而不是直接询问数据库 [2]。

[1] https://docs.jboss.org/jbossas/docs/Clustering_Guide/4/html/ch04s02s03.html[2]https://code.google.com/p/guava-libraries/wiki/CachesExplained

关于java - 在 Spring Controller 中同时执行两种方法时只有一次数据获取的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30028568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com