【发布时间】:2016-06-13 21:56:41
【问题描述】:
我需要在服务器端调用一堆 Spring Controller 方法,但我将拥有的只是 @RequestMapping 值。有没有办法做到这一点?
我知道这是可以做到的,因为它是通过 MockMvc 在测试框架中使用的。我想要那个确切的功能:
String a = mockMvc.perform(get("/foo/bar/{id}", foobarId)).andReturn().getResponse().getContentAsString();
String b = mockMvc.perform(get("/foo/car/{id}", foobarId)).andReturn().getResponse().getContentAsString();
String totals = a + b;
坦率地说,我正在考虑使用它,因为它似乎完全符合我的要求。使用这个会不会有问题?我只是将 WebApplicationContext 自动连接到控制器中,这样就可以了。正确的? :)
编辑
重定向不是我想要的。我不想链接调用,每个调用也必须能够被网络浏览器作为独立方法使用
更新
我突然想到,当 spring 启动时,它会进行组件扫描,查找 @Controllers 和 @RequestMapping 并且必须制作某种 Map 来映射 URL class.method() 对吗?它不会扫描每个调用的所有类。问题是,这张地图一旦被扫描和加载到哪里去了,一个控制器的开发者可以访问它吗?
【问题讨论】:
-
不能使用 JavaScript/jQuery?
-
没有。服务器端对此的授权。
-
那就试试 RestTemplate spring.io/guides/gs/consuming-rest
标签: java spring spring-mvc