Spring:如何查看Spring应用对外提供了哪些API接口?

在开发Spring应用时一般都会通过Controller层对外提供API接口,另外Spring自身也会隐式的提供一些API接口。这里就有一个问题,在应用启动时,Controller层API接口和隐式API接口到底有哪些能真正对外提供服务呢?

下面先把方法提供了出来,然后再详细讲解。

一、配置方法

以spring和logback的如下版本进行说明

spring-webmvc-5.3.31.jar

logback-classic-1.2.12.jar

logback-core-1.2.12.jar

logback.xml

XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<property name="LOG_HOME" value="/applog" />
	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>%msg%n</pattern>
		</encoder>
	</appender>
	<appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<rollingPolicy class="ch.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 level="info" additivity="false">
		<appender-ref ref="rollingFile" />
	</root>
	<logger name="com.test" level="INFO" additivity="false">
		<appender-ref ref="rollingFile" />
	</logger>
	<logger name="_org.springframework.web.servlet.HandlerMapping.Mappings" level="DEBUG" additivity="false">
		<appender-ref ref="rollingFile" />
	</logger>
	<logger name="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" level="DEBUG" additivity="false">
		<appender-ref ref="rollingFile" />
	</logger>

</configuration>

spring应用启动后会打印如下日志:

红色框是由配置_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接口。

相关推荐
计算机毕设定制辅导-无忧学长14 小时前
《基于SpringBoot的未成年人健康知识科普平台的设计与实现》
java·开发语言·vue.js·spring boot·未成年人健康知识科普平台
Wang's Blog14 小时前
Java 项目实战: 外卖平台-数据库环境搭建与十一张表结构解析
java·服务器·redis
白远山14 小时前
上海24小时自助健身房系统软件开发实战指南
java·架构·uni-app·需求分析
泡海椒14 小时前
jquick-pdf 表格实战:动态数据 PDF 报表生成
java·开发语言·pdf
OxYGC15 小时前
[AI工程] Spring AI 第十四篇:Agent 五种模式在 2.0 里怎么写
java·spring·ai·ai编程
code2cat15 小时前
【随笔】从聊天到调用工具:理解MCP在AI应用中的位置
java·人工智能
2501_9339232515 小时前
Spring Bean作用域揭秘:单例、原型、请求与会话的区别
java·后端·spring·java-ee
学编程就要猛15 小时前
基于Spring AI 的智能聊天机器人
java·spring ai·chat robot
修炼室15 小时前
Java开发工程师笔试经验贴【高频知识】
java
木井巳15 小时前
【记忆化搜索】最长递增子序列
java·算法·leetcode·深度优先·剪枝·推荐算法