Intereting Posts
iText Добавляет значения к вкладкам-заполнителям в титульной странице PDF динамически Назначить и создать новую разницу в String В чем разница между «classpath:» и «classpath: /» в Spring XML? преобразование статического массива 2D String в HashMap Является ли каждый веб-запрос платформы Framework обработанным с помощью нового экземпляра controllerа с зависимостями, но что же касается статических методов controllerа? Как убедиться, что два streamа, на которых печатаются даже нечетные числа, сохраняют даже первый, а затем нечетный порядок для этой реализации? доступ к переменной внутри внутреннего classа в java Как написать JPQL SELECT со встроенным идентификатором? Добавить любимые методы для статического импорта в IntelliJ? JAVA: как получить доступ к пути к файлу с страницы предпочтений и использовать его в коде программирования Поля наследования Java LambdaConversionException с дженериками: ошибка JVM? Прозрачный, щелчок, всегда сверху JFrame Рекомендуемые книги по разработке настольных приложений с использованием MVC В Java, неужели плохая идея сделать общедоступными члены объекта?

Отображение Spring HandlerInterceptor с аннотациями

Добрый день. Я получил приложение весеннего mvc и два controllerа внутри. Первый controller (PublicController) может обрабатывать запросы от всех пользователей, Second (PrivateController) может обрабатывать только авторизованных пользователей.

Поэтому я реализовал два перехватчика Handler Interceptor`s

@Configuration @EnableWebMvc @ComponentScan(basePackages="webapp.base.package") public class WebApplicationConfig extends WebMvcConfigurerAdapter { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LoggerInterceptor()); registry.addInterceptor(new AccessInterceptor()); } } 

Мне нужен мой LoggerInterceptor для обработки запросов всех controllerов, а мой AccessInterceptor обрабатывать только PrivateController . Я должен сопоставить Interceptors с Controllers с аннотациями

Просто решите.

 @Configuration @EnableWebMvc @ComponentScan(basePackages="webapp.base.package") public class WebApplicationConfig extends WebMvcConfigurerAdapter { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LoggerInterceptor()).addPathPatterns("/**");; registry.addInterceptor(new AccessInterceptor()).addPathPatterns("/private/**");; } } 

Я не знаю, почему, когда я использую ваш путь, это сработало. Но перехватчик выполнялся дважды. И я нашел другой способ сделать это.

  @Bean public MappedInterceptor interceptor() { return new MappedInterceptor(null, new String[]{"/","/**/*.js", "/**/*.html", "/**/*.css"}, new LogInterceptor()); }