Spring:如何查看Spring应用对外提供了哪些API接口?
在开发Spring应用时一般都会通过Controller层对外提供API接口另外Spring自身也会隐式的提供一些API接口。这里就有一个问题在应用启动时Controller层API接口和隐式API接口到底有哪些能真正对外提供服务呢下面先把方法提供了出来然后再详细讲解。一、配置方法以spring和logback的如下版本进行说明spring-webmvc-5.3.31.jarlogback-classic-1.2.12.jarlogback-core-1.2.12.jarlogback.xml?xml version1.0 encodingUTF-8? configuration property nameLOG_HOME value/applog / appender nameconsole classch.qos.logback.core.ConsoleAppender encoder pattern%msg%n/pattern /encoder /appender appender namerollingFile classch.qos.logback.core.rolling.RollingFileAppender rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy fileNamePattern${LOG_HOME}/app.%d{yyyy-MM-dd}.log/fileNamePattern /rollingPolicy encoder pattern%d|%-5p|%t|%logger|%C.%M[%L]|%m%n/pattern /encoder /appender root levelinfo additivityfalse appender-ref refrollingFile / /root logger namecom.test levelINFO additivityfalse appender-ref refrollingFile / /logger logger name_org.springframework.web.servlet.HandlerMapping.Mappings levelDEBUG additivityfalse appender-ref refrollingFile / /logger logger nameorg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping levelDEBUG additivityfalse appender-ref refrollingFile / /logger /configurationspring应用启动后会打印如下日志红色框是由配置_org.springframework.web.servlet.HandlerMapping.Mappings打印的这个配置前的下划线是必须有的没有下划线的话是打印不出来的。打印出的内容就是这个spring应用支持的API接口及它对应的Controller类和方法其中既包含用户自定义的比如SseController也包含Spring隐式提供的比如BasicErrorController。绿色框是由配置org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping打印的它显示了spring应用总共提供了多少个API接口。通过上述配置就能打印出这个spring应用实际能够提供的API接口。如果用户自定义的Controller中的API接口在这里没有显示出来就需要查一下代码或配置中是否存在什么问题了。二、配置说明红色框中打印的内容是由如下代码生成的org.springframework.web.servlet.handler.AbstractHandlerMethodMapping其中mappingsLogger是在如下类中定义的org.springframework.web.servlet.handler.AbstractHandlerMapping而为什么要加下划线是因为调用了如下方法org.springframework.core.log.LogDelegateFactory绿色框中打印的内容是由如下代码生成的org.springframework.web.servlet.handler.AbstractHandlerMethodMapping经过以上讲解应该已经清楚说明怎样配置及为什么要这样配置了以后开发spring应用时只要采用以上方法就能比较方便的查看所有API接口。