Подтвердить что ты не робот

В Spring MVC существует ли способ генерировать список распознанных контроллеров и представлений?

В управляемом аннотациями Spring MVC существует ли способ создать таблицу шаблонов URL, глаголов и их сопоставлений? Что-то вроде:

 /foo/{fooId}       | GET | FooController.get()     | jsp/foo/home.jsp      |
 /foo/{fooId}/bars/ | GET | FooController.getBars() | jsp/foo/bar/index.jsp | 
4b9b3361

Ответ 1

это помогло мне. внутри log4j.xml введите следующее:

<!-- Appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%-5p: %c - %m%n" />
    </layout>
</appender>


<!-- 3rdparty Loggers -->
<logger name="org.springframework.core">
    <level value="info" />
</logger>

<logger name="org.springframework.beans">
    <level value="info" />
</logger>

<logger name="org.springframework.context">
    <level value="info" />
</logger>

<logger name="org.springframework.http">
    <level value="debug" />
</logger>
    <!-- below alternate between debug and info -->
<logger name="org.springframework.web">
    <level value="debug" />
</logger>

Ответ 2

Это тот же подход, что и john fuhr, но более конкретный, поэтому вы регистрируете только сопоставления URL-адресов, а не все из spring. Я также использую log4j.properties, а не .xml, но вы можете конвертировать его, если хотите. Я предполагаю, что у вас есть добавленный под именем mainAppender.

Я использую spring 3.2.2.RELEASE, но он может работать и с другими версиями.

Этот регистратор отвечает за все, что вы отмечаете с помощью @RequestMapping:

  log4j.logger.org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping=INFO, mainAppender

Это журнал, ответственный за определения <mvc:resources />:

  log4j.logger.org.springframework.web.servlet.handler.SimpleUrlHandlerMapping=INFO, mainAppender

Вы также можете добавить эти две строки, чтобы остановить дублированный вывод (печать одной и той же строки дважды), если вы это испытываете.

  log4j.additivity.org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping=false
  log4j.additivity.org.springframework.web.servlet.handler.SimpleUrlHandlerMapping=false

Это пример вывода, который я получаю:

14:29:43  INFO RequestMappingHandlerMapping.registerHandlerMethod():185 - Mapped "{[/splash],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String au.org.example.HomeController.splash(org.springframework.ui.Model)
14:29:43  INFO RequestMappingHandlerMapping.registerHandlerMethod():185 - Mapped "{[/home],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String au.org.example.HomeController.home(boolean,int,org.springframework.ui.Model)
14:29:44  INFO SimpleUrlHandlerMapping.registerHandler():302 - Root mapping to handler of type [class org.springframework.web.servlet.mvc.ParameterizableViewController]
14:29:44  INFO SimpleUrlHandlerMapping.registerHandler():315 - Mapped URL path [/js/**] onto handler 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#0'
14:29:44  INFO SimpleUrlHandlerMapping.registerHandler():315 - Mapped URL path [/images/**] onto handler 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#1'
14:29:44  INFO SimpleUrlHandlerMapping.registerHandler():315 - Mapped URL path [/css/**] onto handler 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#2'

Это не так красиво, как вы, но он дает вам первые три столбца информации (из вашей таблицы примеров). К сожалению, вы не видите имена имен.