我正在设计一个将部署到Wildfly或Tomcat的Java Web应用程序(尚未决定)。
基本上它是关于需要REST接口进行通信(接受JSON数据)的脱机java应用程序。我们的想法是应用程序始终运行并处理存储在redis缓存中的请求(存储收到的JSON数据)。
我过去曾使用Spring MVC框架作为网站,但我不需要REST接口的MVC模式。
有没有一种方法可以指出我使用Spring框架(或其他一些Java框架)来添加接收现有离线应用程序的POST请求的功能?或者,最好只编写将使用与现有应用程序相同的缓存的REST服务?
为了说明我的问题,我附上了我正在寻找的架构的简化图:
答案 0 :(得分:2)
一旦您谈到接收 POST请求,您就会自动引用HTTP服务器。
问题在于该服务器是作为服务运行还是按需运行。
有没有一种方法可以指出我使用Spring框架(或其他一些Java框架)来添加接收现有离线应用程序的POST请求的功能?
不是没有引入某种HTTP容器,没有。
或者,编写将使用与现有应用程序相同的缓存的REST服务会更好吗?
是的,确切地说。正如另一个提到的,个人而言,我坚持使用Spring MVC。但泽西岛也应该为你的用例做好准备。
答案 1 :(得分:1)
我认为你应该使用任何轻型ESB,如Camel,Mule或Spring Integration。如果您已经使用过Spring,那么后者对您来说将是最简单的。
此类应用程序的目的是促进与任何事物进行通信的任务(在这种情况下,与您的离线应用程序的HTTP端点)。
看看这个:
答案 2 :(得分:1)
你可以使用Spring MVC。
M odel是您的域类,在这种情况下 V iew是JSON, C 控制器处理要执行的请求逻辑运算,照常营业。
您还可以利用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);
}
}
答案 3 :(得分:0)
来自Andres,ESala和kervin的回答指出了我正确的方向,但我发现最合适的解决方案是: