<noframes id="bhrfl"><address id="bhrfl"></address>

    <address id="bhrfl"></address>

    <noframes id="bhrfl"><address id="bhrfl"><th id="bhrfl"></th></address>

    <form id="bhrfl"><th id="bhrfl"><progress id="bhrfl"></progress></th></form>

    <em id="bhrfl"><span id="bhrfl"></span></em>

    全部
    常見問題
    產品動態
    精選推薦

    找回啟動日志中的請求路徑列表

    管理 管理 編輯 刪除

    如果您對Spring Boot有一些經驗,或者對Spring MVC很熟悉。那么對于Spring構建的Web應用在啟動的時候,都會輸出當前應用創建的HTTP接口列表。

    比如下面的這段日志:

    2020-02-11 15:32:39.293  INFO 48395 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
    2020-02-11 15:32:39.482  INFO 48395 --- [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@7ff95560: startup date [Tue Feb 11 15:32:37 CST 2020]; root of context hierarchy
    2020-02-11 15:32:39.568  INFO 48395 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/users/{id}],methods=[GET]}" onto public com.didispace.chapter26.User com.didispace.chapter26.UserController.getUser(java.lang.Long)
    2020-02-11 15:32:39.569  INFO 48395 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/users/{id}],methods=[PUT]}" onto public java.lang.String com.didispace.chapter26.UserController.putUser(java.lang.Long,com.didispace.chapter26.User)
    2020-02-11 15:32:39.570  INFO 48395 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/users/],methods=[GET]}" onto public java.util.List com.didispace.chapter26.UserController.getUserList()
    2020-02-11 15:32:39.570  INFO 48395 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/users/],methods=[POST]}" onto public java.lang.String com.didispace.chapter26.UserController.postUser(com.didispace.chapter26.User)
    2020-02-11 15:32:39.570  INFO 48395 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/users/{id}],methods=[DELETE]}" onto public java.lang.String com.didispace.chapter26.UserController.deleteUser(java.lang.Long)
    2020-02-11 15:32:39.573  INFO 48395 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
    2020-02-11 15:32:39.573  INFO 48395 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
    2020-02-11 15:32:39.590  INFO 48395 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
    2020-02-11 15:32:39.590  INFO 48395 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
    

    這些日志接口信息是由org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping類在啟動的時候,通過掃描Spring MVC的@Controller、@RequestMapping等注解去發現應用提供的所有接口信息。然后在日志中打印,以方便開發者排查關于接口相關的啟動是否正確。

    但是,足夠仔細的開發者可能已經發現,從Spring Boot 2.1.0版本開始,就不再打印這些信息了,完整的啟動日志變的非常少,以Spring Boot 2.x基礎教程:構建RESTful API與單元測試一文的例子為例,可以看到輸入內容如下:

    2020-02-11 15:34:15.280  INFO 48784 --- [main] c.d.chapter26.Chapter26Application       : Starting Chapter26Application on zhaiyongchaodeMacBook-Pro.local with PID 48784 (/Users/zhaiyongchao/Documents/git/github/SpringBoot-Learning/2.1.x/chapter2-6/target/classes started by zhaiyongchao in /Users/zhaiyongchao/Documents/git/github/SpringBoot-Learning/2.1.x)
    2020-02-11 15:34:15.283  INFO 48784 --- [main] c.d.chapter26.Chapter26Application       : No active profile set, falling back to default profiles: default
    2020-02-11 15:34:16.556  INFO 48784 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
    2020-02-11 15:34:16.587  INFO 48784 --- [main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
    2020-02-11 15:34:16.588  INFO 48784 --- [main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.16]
    2020-02-11 15:34:16.596  INFO 48784 --- [main] o.a.catalina.core.AprLifecycleListener   : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/Users/zhaiyongchao/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.]
    2020-02-11 15:34:16.702  INFO 48784 --- [main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
    2020-02-11 15:34:16.702  INFO 48784 --- [main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1377 ms
    2020-02-11 15:34:16.954  INFO 48784 --- [main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
    2020-02-11 15:34:17.187  INFO 48784 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
    2020-02-11 15:34:17.192  INFO 48784 --- [main] c.d.chapter26.Chapter26Application       : Started Chapter26Application in 2.238 seconds (JVM running for 2.764)
    

    找回日志中請求路徑列表

    為什么在Spring Boot 2.1.x版本中不再打印請求路徑列表呢?

    主要是由于從該版本開始,將這些日志的打印級別做了調整:從原來的INFO調整為TRACE。所以,當我們希望在應用啟動的時候打印這些信息的話,只需要在配置文件增增加對RequestMappingHandlerMapping類的打印級別設置即可,比如在application.properties中增加下面這行配置:

    logging.level.org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping=trace
    

    在增加了上面的配置之后重啟應用,便可以看到如下的日志打?。?/span>

    2020-02-11 15:36:09.787 TRACE 49215 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : 
    	c.d.c.UserController:
    	{PUT /users/{id}}: putUser(Long,User)
    	{GET /users/{id}}: getUser(Long)
    	{POST /users/}: postUser(User)
    	{GET /users/}: getUserList()
    	{DELETE /users/{id}}: deleteUser(Long)
    2020-02-11 15:36:09.791 TRACE 49215 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : 
    	o.s.b.a.w.s.e.BasicErrorController:
    	{ /error}: error(HttpServletRequest)
    	{ /error, produces [text/html]}: errorHtml(HttpServletRequest,HttpServletResponse)
    2020-02-11 15:36:09.793 DEBUG 49215 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : 7 mappings in 'requestMappingHandlerMapping'
    

    可以看到在2.1.x版本之后,除了調整了日志級別之外,對于打印內容也做了調整。現在的打印內容根據接口創建的Controller類做了分類打印,這樣更有助于開發者根據自己編寫的Controller來查找初始化了那些HTTP接口。


    注:本文轉載自“程序猿DD”,如有侵權,請聯系刪除!

    請登錄后查看

    吳小汐 最后編輯于2024-12-18 14:48:23

    快捷回復
    回復
    回復
    回復({{post_count}}) {{!is_user ? '我的回復' :'全部回復'}}
    排序 默認正序 回復倒序 點贊倒序

    {{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level }}

    作者 管理員 企業

    {{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推薦': '推薦'}}
    {{item.is_suggest == 1? '取消推薦': '推薦'}}
    沙發 板凳 地板 {{item.floor}}#
    {{item.user_info.title || '暫無簡介'}}
    附件

    {{itemf.name}}

    {{item.created_at}}  {{item.ip_address}}
    打賞
    已打賞¥{{item.reward_price}}
    {{item.like_count}}
    {{item.showReply ? '取消回復' : '回復'}}
    刪除
    回復
    回復

    {{itemc.user_info.nickname}}

    {{itemc.user_name}}

    回復 {{itemc.comment_user_info.nickname}}

    附件

    {{itemf.name}}

    {{itemc.created_at}}
    打賞
    已打賞¥{{itemc.reward_price}}
    {{itemc.like_count}}
    {{itemc.showReply ? '取消回復' : '回復'}}
    刪除
    回復
    回復
    查看更多
    打賞
    已打賞¥{{reward_price}}
    1231
    {{like_count}}
    {{collect_count}}
    添加回復 ({{post_count}})

    相關推薦

    快速安全登錄

    使用微信掃碼登錄
    {{item.label}} 加精
    {{item.label}} {{item.label}} 板塊推薦 常見問題 產品動態 精選推薦 首頁頭條 首頁動態 首頁推薦
    取 消 確 定
    回復
    回復
    問題:
    問題自動獲取的帖子內容,不準確時需要手動修改. [獲取答案]
    答案:
    提交
    bug 需求 取 消 確 定
    打賞金額
    當前余額:¥{{rewardUserInfo.reward_price}}
    {{item.price}}元
    請輸入 0.1-{{reward_max_price}} 范圍內的數值
    打賞成功
    ¥{{price}}
    完成 確認打賞

    微信登錄/注冊

    切換手機號登錄

    {{ bind_phone ? '綁定手機' : '手機登錄'}}

    {{codeText}}
    切換微信登錄/注冊
    暫不綁定
    亚洲欧美字幕
    CRMEB客服

    CRMEB咨詢熱線 咨詢熱線

    400-8888-794

    微信掃碼咨詢

    CRMEB開源商城下載 源碼下載 CRMEB幫助文檔 幫助文檔
    返回頂部 返回頂部
    CRMEB客服