В Spring MVC есть способ создать список распознанных контроллеров и представлений? - PullRequest
30 голосов
/ 10 марта 2011

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

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

Ответы [ 2 ]

10 голосов
/ 27 марта 2011

это помогло мне. внутри 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>
5 голосов
/ 04 июля 2014

Это тот же подход, который упоминал Джон Фур, за исключением более конкретного, поэтому вы регистрируете только 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'

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...