繁体   English   中英

REST的Java Web服务架构

[英]Java web service architecture with REST

我正在设计一个Java Web应用程序,该应用程序将部署到Wildfly或Tomcat(尚未确定)。

基本上,它是关于需要一个REST接口进行通信(以接受JSON数据)的脱机java应用程序。 这个想法是应用程序始终运行并处理存储在redis缓存(存储接收到的JSON数据)中的请求。

过去,我将Spring MVC框架用于网站,但我不需要REST接口的MVC模式。

有没有一种方法可以指向我使用Spring框架(或某些其他Java框架) 来向现有脱机应用程序添加接收POST请求的功能 还是只编写将使用与现有应用程序相同的缓存的REST服务会更好?

为了说明我的问题,我附上我正在寻找的体系结构的简化图:

现有的应用程序和扩展

谈到收到 POST请求,您将自动引用HTTP服务器。

问题只是该服务器是作为服务运行还是按需运行。

有没有一种方法可以指向我使用Spring框架(或其他Java框架)来向现有脱机应用程序添加接收POST请求的功能?

并非没有引入某种HTTP容器,不。

还是只编写将使用与现有应用程序相同的缓存的REST服务会更好?

对,就是这样。 正如另一个提到的那样,我个人会坚持使用Spring MVC。 但是Jersey对于您的用例也应该非常适合您。

我认为您应该使用任何轻型ESB,例如Camel,Mule或Spring Integration。 如果您已经使用过Spring,那么后者可能对您来说最简单。

这种应用程序的目的是简化与任何事物进行通信的任务(在这种情况下,是与您的离线应用程序进行HTTP终结点通信)。

看看这个:

https://www.google.ie/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=spring%20integration%20http-inbound

您可以为此使用Spring MVC。

M odel是您的域类,在这种情况下, V iew是JSON,而C ontroller照常处理请求以执行逻辑操作。

您还可以利用Spring的@RestController批注来快速创建端点,例如以下Java示例:

@RestController
public class MovieController {

    @Autowired
    private MovieRepository movieRepository;

    @RequestMapping(value = "/movies/{search}", method = RequestMethod.GET)
    public List<Movie> findMovies(@PathVariable String search) {
        return movieRepository.findByName(search);
    }

    @RequestMapping(value = "/movies", method = RequestMethod.POST)
    public void postMovie(@RequestBody Movie movie) {
        movieRepository.save(movie);
    }

}

Andres,ESala和kervin的回答为我指明了正确的方向,但我发现最合适的解决方案是:

  • 使用Spring MVC和REST实现REST服务
  • 将主要流程从现有应用程序转换为Spring计划任务

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM