首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Spring应用程序中的容器启动时记录restful端点

在Spring应用程序中的容器启动时记录restful端点
EN

Stack Overflow用户
提问于 2016-11-15 22:43:35
回答 4查看 12.4K关注 0票数 10

我有一个Spring应用程序,它通过控制器类中的@RequestMapping注释公开restful端点。

我希望在服务器启动时登录到控制台,所有应用程序控制器的所有端点。

我使用tomcat服务器和log4j进行日志记录。

谢谢。

EN

回答 4

Stack Overflow用户

发布于 2018-12-12 09:26:48

适用于那些使用spring-boot的用户的

在最新的spring-boot发行版(从v2.1开始)中,他们更改了映射默认日志级别(在发行说明here中指定)。

将以下属性之一添加到application.properties文件:

  • logging.level.web=TRACE
  • logging.level.org.springframework.web=TRACE

示例控制台输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
2018-12-12 11:16:51.793 TRACE 11868 --- [  restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping
    c.n.c.MyController:
    {POST /users}: addUser(User)
    {DELETE /users}: deleteUser(User)
    {PUT /users}: updateUser(User)
    {GET /users/{id}}: getUserById(String)
    {GET /users}: getUsers()
    {GET /users_static}: getUsersStaticList()
2018-12-12 11:16:51.795 TRACE 11868 --- [  restartedMain] 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)
票数 17
EN

Stack Overflow用户

发布于 2016-11-15 22:53:00

在log4J中,为org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping类添加info日志级别。

使用级别INFO

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
log4j.category.org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping=INFO

您应该有这样的信息(行被截断):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
2016-11-15 23:34:30.040  INFO 10156 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/contacts/{id}],methods=[GET],produces=[application/json]}" o
2016-11-15 23:34:30.040  INFO 10156 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/contacts/{id}],methods=[DELETE],produces=[application/json]}
2016-11-15 23:34:30.040  INFO 10156 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/contacts],methods=[POST],consumes=[application/json],produce
2016-11-15 23:34:30.040  INFO 10156 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/contacts/{id}],methods=[PUT],consumes=[application/json],pro
2016-11-15 23:34:30.040  INFO 10156 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/contacts],methods=[GET],produces=[application/json]}" onto p
2016-11-15 23:34:30.040  INFO 10156 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/api/contacts/search],methods=[GET],params=[group-id],produces=[a

更新

从Spring MVC 5.1/Spring Boot 2开始,日志记录策略发生了变化。

现在用INFO级别记录的信息很少,DEBUG级别提供了更多信息,但并不详细。

只有TRACE级别会提供详细信息。

下面是changelog (重点是我的):

日志版本:

Spring的JCL桥可以通过标准的Commons日志记录来检测。

在信息上的噪音更小,可读的调试日志,跟踪级别的详细信息。

因此,以这种方式更改日志记录配置,以列出所有映射:

Log4J属性方式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
log4j.category.org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping=TRACE

登录方式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<logger level="TRACE" name="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
票数 8
EN

Stack Overflow用户

发布于 2016-11-15 23:31:55

除了前面在Spring Boot中的回答之外,还有一个Actuator,它公开了一个名为mappings的专用Endpoint,可在/mappings下访问。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40621044

复制
相关文章
web中缓存的几种方式
应用程序把动态文件生成的html文件缓存到文件服务器,以后用户请求动态文件,直接从文件服务器加载对应的静态缓存的html文件返回给用户,这里面主要节省了动态语言的执行时间和数据库访问时间。但是会增加了缓存框架的加载和缓存查找的时间。
哲洛不闹
2018/09/19
2.5K0
nginx的web缓存服务环境部署记录
web缓存位于内容源Web服务器和客户端之间,当用户访问一个URL时,Web缓存服务器会去后端Web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问的是相同的URL,Web缓存服务器直接输出内容给客户端,而不是向源服务器再次发送请求.Web缓存降低了内容源Web服务器,数据库的负载,减少了网络延迟,提高了用户访问的响应速度,增强了用户体验. web缓存服务器中,最著名的要数Squid Cache(简称为Squid),Squid是一个流浪的自由软件的代理服务器和Web缓存服务器。 --------
洗尽了浮华
2018/01/22
1.7K0
nginx的web缓存服务环境部署记录
Web缓存
Web 缓存是可以自动保存常见文档副本的 HTTP 设备。当 Web 请求抵达缓存时,如果本地有“已缓存的”副本,就可以从本地存储设备而不是原始服务器中提取这个文档。使用缓存有下列优点。
zy010101
2022/11/07
8020
Web缓存
Web缓存 - HTTP协议缓存
Web缓存一般分为浏览器缓存、代理服务器缓存以及网关缓存,本文主要讲的是 浏览器缓存,其它两种缓存大家自行去了解下。
laixiangran
2018/07/25
9900
Web缓存 - HTTP协议缓存
缓存架构中的服务详解!SpringBoot中二级缓存服务的实现
创建缓存服务 创建缓存服务接口项目 创建myshop-service-redis-api项目,该项目只负责定义接口 创建项目的pom.xml: <?xml version="1.0" encoding
攻城狮Chova
2022/01/22
4420
微服务架构中缓存模式
在微服务世界中,每个人都使用缓存,缓存无处不在。缓存可以提高性能,减少后端负载,或者减少down机时间。有许多方法可以配置系统中的缓存,缓冲应该被放在系统的哪个层上?根据以往成功经验,系统中您应该只在
程序你好
2019/11/06
2.3K0
微服务架构中缓存模式
96-可重用的TCP服务器
在95-socket基础:TCP服务器流程中,TCP服务器只能一个客户端连接,客户端也只能发送一条消息。本例允许客户端发送多条消息,输入end结束。客户端退出后,服务器程序不再退出,可以为下一个客户端提供服务:
凯茜的老爸
2018/09/11
1.1K0
Web缓存教程
 这是一篇针对网站站长、Web开发者与运营维护人员有关缓存Cache的教程。Web缓存是指存在多个Web服务器和客户端之间的缓存,将对请求的响应保存复制拷贝,比如HTML页面、图片和文件,如果从同样的URL有另外一个请求进来,将首先从Web缓存中获得该URL的响应拷贝,而不是再直接向原始服务器获取。
lyb-geek
2018/08/16
9440
web缓存介绍
web缓存是什么,其实就是一些静态的资源及数据存储到本地浏览器或者是服务器上。缓存会根据进来的请求保存输出内容的副本,当下一个请求来到的时候,如果是相同的URL,缓存会根据缓存机制决定是直接使用副本响应访问请求,还是向源服务器再次发送请求。判断一个网站的性能最直观的就是看网页打开的速度。其中提高网页反应速度的一个方式就是使用缓存。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。
OECOM
2020/07/02
1.1K0
web缓存介绍
浅谈Web缓存
在前端开发中,性能一直都是被大家所重视的一点,然而判断一个网站的性能最直观的就是看网页打开的速度。其中提高网页反应速度的一个方式就是使用缓存。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。那么下面我们就来看看服务器端缓存的原理。
李维亮
2021/07/08
9920
iOS的web缓存相关
最近关于web界面偶有反馈拉到旧的界面,导致出现一些异常情况; 因此,对web资源的加载、缓存进行一些梳理。
落影
2020/05/18
1.1K0
iOS的web缓存相关
缓存架构中的服务详解!SpringBoot中二级缓存服务实现
创建缓存服务 创建缓存服务接口项目 创建myshop-service-redis-api项目,该项目只负责定义接口 创建项目的pom.xml: <?xml version="1.0" encoding
攻城狮Chova
2021/11/06
5060
缓存架构中的服务详解!SpringBoot中二级缓存服务实现
WEB缓存探究
由于项目越来越大,即使了使用代码压缩工具减少文件大小,js文件还是不可避免的越变越大。而对于用户来说每次重新下载都有可能会消耗大量时间,让我们的首屏展示有较长时间的空白。为了提升网站性能,有效利用缓存能够提升用户体验,提高访问效率。
疯狂的技术宅
2019/03/28
7380
WEB缓存探究
web服务器中的生活
Web 服务器总是忙忙碌碌的,从不下班,这似乎比运维工程师还要辛苦。 每一个线程都在忙着,然而也有不太一样的,比如那个被数据库操作拖在那里的,就只能发呆;而那个被糟糕的代码搞得堆栈溢出的,看起来已经要崩溃了。 处理完请求之后,Web 服务器会给出生成的页面和 Cookie(饼干),如果下次带着这些饼干的编号来,那就可以很快地找到你要的饼干——这就是用饼干保存的会话。 这就是 Tomcat Web 服务器里面的生活。 via: http://turnoff.us/geek/life-in-a-web-se
wangxl
2018/03/29
1.3K0
web服务器中的生活
Web 性能优化-缓存-DNS 缓存
缓存技术几乎存在于网络技术发展的各个角落,从数据库到服务器,从服务器到网络,再从网络到客户端,缓存随处可见。跟前端有关的缓存技术主要有:DNS 缓存,HTTP 缓存,浏览器缓存,HTML5 缓存(localhost/manifest)和 service worker 中的 cache api。
李振
2021/11/26
2.9K0
Web 性能优化-缓存-HTTP 缓存
HTTP 缓存通常要配合客户端(浏览器)使用才能发挥效果,所以又被称之为浏览器缓存,是 Web 性能优化的一大利器。
李振
2021/11/26
5470
在Vue中创建可重用的 Transition
Vue.js中的transition确实很棒。 毫无疑问,它们可以非常轻松地让应用程序栩栩如生,但是通常必须在每个项目中从头开始编写它们,甚至还需要引入animate.css之类的CSS库来使它们功能更强大。
前端小智@大迁世界
2020/06/04
9.8K0
在Vue中创建可重用的 Transition
简化跨微服务重用,API 标准化过程中的左移法
作者 | Thiyagarajan Kamaraj 译者 | 平川 策划 | 丁晓昀 什么是 API 标准化? API 设计就是创建一个有效的接口,使你可以更好地维护和实现 API,同时使消费者能够轻松地使用这个 API。 一致的 API 设计意味着,在组织或团队中对所有 API 及其公开的资源进行标准化设计。它是开发人员、架构师和技术作者共同遵守的蓝图,可以保证在 API 使用过程中品牌和体验的一致性。风格指南旨在确保 API 设计和实现方式的一致性,组织就是用它来标准化设计。下面是比较流行
深度学习与Python
2023/03/29
5300
简化跨微服务重用,API 标准化过程中的左移法
游戏开发中的数据表示
通过IDL语言去定义一个.PROTO文件,然后PROTOBUF会对各个平台提供PROTO C这么一个编译器,然后PROTO C编译器我们可以指定我要生成对应的C#的DR的表示还是对应的C++的DR表示。
Zoctopus
2018/08/10
1.9K0
游戏开发中的数据表示
ASP.NET Core 中的 ObjectPool 对象重用(一)
对象池是一种设计模式,一个对象池包含一组已经初始化过且可以使用的对象,而可以在有需求时创建和销毁对象。池的对象可以从池中取得对象,对其进行操作处理,并在不需要时归还给池子而非直接销毁他,他是一种特殊的工厂对象。
HueiFeng
2020/01/22
1.3K0
ASP.NET Core 中的 ObjectPool 对象重用(一)

相似问题

web服务中的静态缓存

23

Spring Web服务中的缓存?

34

ServiceStack web服务中的缓存

12

如何将数据表存储在缓存中以重用它?

40

缓存web服务结果

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文