How to show all the routes mapped in a spring based application? In Rails this is done using rake routes.
I use two mapping methods of spring to create the URL-mappings:
@RequestMappingSimpleUrlHandlerI have used the Unix command grep and cut to get all the mappings of @RequestMapping. I wonder if there is some way I can get these details from the Spring application.
If you are using Intellij (ultimate edition), then after you build/run the project, you can view the routes in the bottom toolbar Run -> Endpoints -> Mappings.

If you set the Log4J category for log4j.logger.org.springframework.web to INFO or DEBUG you should see the list of mappings in your server's log (e.g. catalina.out) when your app starts up.
For example:
INFO: DefaultAnnotationHandlerMapping: Mapped URL path [/about] onto handler [org.bozos.songfight.webapp.spring.controller.RootController@6bc947]
INFO: DefaultAnnotationHandlerMapping: Mapped URL path [/about.*] onto handler [org.bozos.songfight.webapp.spring.controller.RootController@6bc947]
INFO: DefaultAnnotationHandlerMapping: Mapped URL path [/about/] onto handler [org.bozos.songfight.webapp.spring.controller.RootController@6bc947]
...
INFO: SimpleUrlHandlerMapping: Mapped URL path [/login] onto handler [org.springframework.web.servlet.mvc.UrlFilenameViewController@4035acf6]
This can be done with spring-boot-starter-web:2.6.5 which makes use of spring-webmvc:5.3.17.
Add this config to your application.yml (or similar):
logging:
level:
_org.springframework.web.servlet.HandlerMapping.Mappings: debug
The underscore '_' in the logger name is important.
This property will generate logs during application boot that look like this

The property references spring-webmvc:5.3.17's org.springframework.web.servlet.handler.AbstractHandlerMapping which creates a hidden logger for mappings

This logger gets used in method detectHandlerMethods() of subclass AbstractHandlerMethodMapping

It looks like this technique goes back as early as spring-webmvc 5.3.5 (march 2021):
Github Spring Framework Release 5.3.5
Here's the commit containing the changes:
Github Spring Framework commit with changes for logging routes
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With