gpt4 book ai didi

java - 在 Spring Boot 应用程序中的 Controller 被调用之前执行代码

转载 作者:行者123 更新时间:2023-11-30 02:48:16 27 4
gpt4 key购买 nike

在调用 Spring Boot 应用程序中的 Controller 之前,我需要做一些工作。是否可以仅拦截对我的 Controller 的调用?

我知道我可以通过拦截 http 请求或注册过滤器来实现此目的,但随后我必须处理 URI 模式,以便代码只执行一次。

在调用 Controller 之前执行我的代码就足够了。

最佳答案

Is it possible to only intercept the call to my controller?

您可以定义拦截器以仅拦截特定 uri/ Controller 上的调用。

这是通过以下方式添加拦截器来完成的:

registry.addInterceptor(new MyInterceptor()).addPathPatterns("/your/uri");

完整代码:

@Configuration
public class AnnotationSecurityConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyInterceptor()).addPathPatterns("/your/uri");
}
}

public class MyInterceptor implements HandlerInterceptor {
@Override
public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception {
System.out.println("afterCompletion");
}
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception {
System.out.println("postHandle");
}
@Override
public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
System.out.println("preHandle");
return true;
}
}

关于java - 在 Spring Boot 应用程序中的 Controller 被调用之前执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39508753/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com