springboot整合intercept、filter、servlet

整合intercept

@Component
public class MyInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("preHandle");
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("postHandler");
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("afterCompletion");
    }
}

整合Filter

public class MyFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("doFilter");
        filterChain.doFilter(servletRequest, servletResponse);
    }

    @Override
    public void destroy() {
    }
}

整合Servlet

public class MyServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().write("hello......");
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }
}

注册类

@Configuration
public class AppConfig extends WebMvcConfigurerAdapter {
    @Autowired
    MyInterceptor myInterceptor;

    /**
     * 注册拦截器
     *
     * @param registry
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(myInterceptor).addPathPatterns("/**").excludePathPatterns("/index.html", "/");
    }

    /**
     * 注册过滤器
     *
     * @return
     */
    @Bean
    public FilterRegistrationBean myFilter() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
        filterRegistrationBean.setFilter(new MyFilter());
        filterRegistrationBean.addUrlPatterns("/*");
        return filterRegistrationBean;
    }

    /**
     * 注册servlet
     *
     * @return
     */
    @Bean
    public ServletRegistrationBean myServlet() {
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean();
        servletRegistrationBean.setServlet(new MyServlet());
        servletRegistrationBean.addUrlMappings("/myServlet");
        return servletRegistrationBean;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot中,可以使用MyBatis框架来操作数据库。MyBatis提供了一个@Intercepts注解,可以用于拦截处理SQL语句的执行过程。 要实现对@Intercepts的过滤,首先需要在Spring Boot的配置文件中配置MyBatis的拦截器。可以通过创建一个实现了Interceptor接口的类,并在该类上添加@Intercepts注解来定义拦截逻辑和拦截的方法。然后,在配置文件中配置这个拦截器。 拦截器可以拦截执行的SQL语句,并在执行之前或之后进行一些额外的处理。可以使用@Intercepts注解的type属性来指定要拦截的类和方法,例如: @Intercepts({ @Signature(type = StatementHandler.class, method = "prepare", args = { Connection.class, Integer.class }) }) public class MyInterceptor implements Interceptor { // 实现intercept方法,可以在此处编写拦截逻辑 // ... } 在这个例子中,使用@Intercepts注解指定了要拦截的类是StatementHandler,而拦截的方法是prepare。并且,还可以通过args属性来指定方法的参数,以进一步过滤要拦截的方法。 配置完成后,启动Spring Boot应用程序,MyBatis会自动将这个拦截器应用到所有符合拦截条件的SQL语句上。拦截器会在SQL语句执行前后进行相应的处理。 总之,通过配置@Intercepts注解,我们可以实现对MyBatis的SQL语句执行过程进行拦截和控制。这样可以在SQL语句执行前后进行一些额外的操作,例如:记录执行日志、修改SQL语句等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值