我有一个非常简单的控制器,如下所示:
@RequestMapping(value = "food", method = RequestMethod.POST)
public ResponseEntity<?> getAll(@RequestParam("term") String term) {
List<Food> foods = foodService.findByNameMatching(term);
return new ResponseEntity<>(foods, HttpStatus.OK);
}
以及服务:
@Service
@Transactional
public class FoodService {
@Autowired
private FoodRepository foodRepository;
public List<Food> findByNameMatching(String name) {
return foodRepository.findMatchName(name);
}
}
食品储备只是一种储备。
到目前为止,流将是:控制器--
现在,我希望我所有的RESTAPI都支持异步。在这种情况下,服务调用存储库来查询数据。我是否应该将@Async注释放在FoodService的方法中,使查询任务成为异步的?。
@Async
public List<Food> findByNameMatching(String name) {
return foodRepository.findMatchName(name);
}
在扩展中,我是否应该将@Async注释放在我的服务的所有方法中,以使我的应用程序完全支持异步?。
据我所知,Spring中的@Async注释支持异步,而Callable和DeferredResult做同样的事情,那么我应该选择哪种情况呢?。
@Async与控制器中的Future int the service和DefferredResult结合使用。看见http://spring.io/guides/gs/async-method/
你的餐饮服务。findByNameMatching必须返回java8 CompetableFuture或Spring ListenableFuture或just Future。您的控制器将返回不同的结果。
@Async
public CompletableFuture<List<Food>> findByNameMatching(String name) {
return CompletableFuture.completedFuture(foodRepository.findMatchName(name));
}
不要忘记启用应用程序异步。通过spring boot,您可以使用@enableSync。
您希望异步工作的那些API应该根据上述注释进行更改。
我是RxJava新手,目前正在使用RxJava版本1。我的用例就像我必须进行一次rest API调用(使用rest模板)。因此,使用调度器是更好的主意吗。在这种情况下,每次都可以使用computation()或任何调度器。 我的课程是 SampleController。Java语言 服务Java语言 在这里,我使用Schedulers来启动新线程。但我再次使用延迟结果进行即时响应,Spring将把
考虑注入bean作为其接口之一,或者通过在@enableAsync和/或@enablecaching上设置ProxyTargetClass=true强制使用基于CGLIB的代理。 如果我尝试注释控制器,我得到的get请求的响应是空的。我尝试了每一件事,包括将设置为true。
Whitelabel错误页面此应用程序没有 /error的显式映射,因此您将此视为后备。 IRDT 2022年4月26 16:10:15日星期二出现意外错误(类型=未找到,状态=404)。找不到JSP文件[/WEB-INF/jsp/home.jsp] 我已将前缀和sufix添加到我的应用程序中。属性: 这是我的控制器类: 我在控制器类中有1个警告: 我的项目文件夹图片 我的应用类: home.js
到目前为止,我一直认为容器技术(例如:docker)提供了所需的隔离和操作系统级虚拟化。在容器中运行的应用程序受到名称空间、cgroup、设备/selinux、功能的限制,他们无法弄清楚自己所处的主机环境。但是这种理解似乎不是100%正确的。 与wiki-OS级虚拟化一样 操作系统级虚拟化是一种操作系统范例,其中内核允许存在多个独立的用户空间实例。这些实例称为容器(LXC、Solaris容器、Do
问题内容: 我的团队正在开发一种具有Web前端的面向服务的新产品。在讨论我们将使用哪些技术时,我们决定运行JBoss应用程序服务器,Flex前端(可能使用Adobe AIR进行桌面部署)和Web服务来连接客户端和服务器。 在将哪种服务器技术用于我们的业务逻辑方面,我们陷入了僵局。最大的争论是在EJB3和Spring之间,我们最大的担忧是可伸缩性和性能以及代码库的可维护性。 这是我的问题: 支持或反
问题内容: 我应该在哪里为我的Java应用程序存储凭据以访问第三方服务? 凭据不是我的应用程序上每个用户都特定的。它们用于访问我的应用程序正在使用的Web服务。我知道足够多,不可以将它们硬编码到我的应用程序中,但是我在哪里以及如何存储它们呢?我还假设它们将需要加密。 问题答案: 以@Zildyan的答案,评论和对其他答案的引用为基础。 有几个选项 ,其中 存储: 数据库 属性文件 常数(硬编码)