为了提供一些运行时生成的API文档,我想迭代所有Spring MVC控制器.所有控制器都使用Spring @Controller注释进行注释.目前我这样做:
for (final Object bean: this.context.getBeansWithAnnotation(
Controller.class).values())
{
...Generate controller documentation for the bean...
}
Run Code Online (Sandbox Code Playgroud)
但是这个代码的第一个电话是EXTREMELY缓慢.我想知道Spring是否迭代了类路径中的所有类,而不仅仅是检查已定义的bean.在运行上述代码时,控制器已经加载,日志显示所有这些控制器的请求映射,因此Spring MVC必须已经全部知道它们,并且必须有更快的方法来获取它们的列表.但是怎么样?
我想知道如何公开我的Spring应用程序公开的所有端点.是否有一种简单的方法可以检查每种@profile暴露的方法?
例:
GET /api/resource
GET /api/resource/list
POST /api/resource
PUT /api/resource
Run Code Online (Sandbox Code Playgroud)
过去,我使用过Laravel中的Web应用程序,他们有一个简单的cli方法来检查暴露的方法.
有没有办法获得所有控制器的列表,这些控制器是用@Controller?注释的?我想用它们像:
@Autowired
public void addAll(List<Controller> controllers) throws Exception {
for (Controller controller : controllers) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我想在某个Controller中设置一个断点来调试它.但是使用我的hybris应用程序中的所有Spring XML声明文件和注释,很难说哪个Spring Controller最终服务于某个HTTP请求.
在hybris中有一种简单的方法可以知道哪个Controller服务于某个HTTP请求吗?也许是一些可以输入URL的工具,它会告诉您请求将解析哪个Controller.或者可能会改进记录此信息的某个Spring类的日志记录?
有没有办法将所有@RequestMapping 注释视为所有请求/URL 的映射,理想情况下可以快速链接到处理 URL 的任何控制器/方法?
在 Spring 2(注释之前)XML 配置(SimpleUrlHandlerMapping)可以用作这样的参考,现在使用带注释的控制器除了搜索代码库之外还有其他方法吗?
spring ×4
java ×3
spring-mvc ×3
controller ×2
annotations ×1
httprequest ×1
hybris ×1
intellij-13 ×1
spring-boot ×1