Issue
I'm currently working on a Spring boot project. I have a dependency on a library project that has an interceptor(LibraryProjectInterceptor.java) and a public class LibraryProjectConfig implements WebMvcConfigurer
and overrides the addInterceptors()
method to add the LibraryProjectInterceptor
to the InterceptorRegistry
. In my actual project where I added this library project dependency, I have created an interceptor(ActualProjectInterceptor
) that needs to be executed after the LibraryProjectInterceptor
has been executed. I have tried adding @Order(value = Ordered.LOWEST_PRECEDENCE)
to the ActualProjectInterceptor
to make it execute after the LibraryProjectInterceptor
but it is not working. Can someone help me
Library Project:
public class LibraryProjectInterceptor implements HandlerInterceptor {
......
}
@Configuration
@EnableWebMVC
public class LibraryProjectConfig implements WebMvcConfigurer {
......
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(LibraryProjectInterceptor);
}
......
}
Actual Project: pom.xml
......
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>library-project</artifactId>
<version>1.0.16</version>
</dependency>
......
@Component
@Order(value = Ordered.LOWEST_PRECEDENCE)
public class ActualProjectInterceptor implements HandlerInterceptor{
.......
}
@SpringBootApplication
public class ActualProjectConfig implements WebMvcConfigurer {
......
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(ActualProjectInterceptor);
}
......
}
Solution
Try this, I hope it will be working.
@Component
public class ActualProjectInterceptor implements HandlerInterceptor {}
@SpringBootApplication
public class ActualProjectConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(ActualProjectInterceptor)
.order(Ordered.LOWEST_PRECEDENCE);
}
}
addInterceptor()
method creates the InterceptorRegistration DSL object which has order()
method to specify what you need.
Answered By - centrumek
Answer Checked By - Clifford M. (JavaFixing Volunteer)