在Spring中,拦截WebSecurityConfigurerAdapter和AOP的目的和方式有一些区别。
-
WebSecurityConfigurerAdapter拦截:
- 目的:
WebSecurityConfigurerAdapter主要用于配置和管理应用程序的安全性,包括定义哪些请求需要进行身份验证、授权规则、登录页面等。 - 方式:通过继承
WebSecurityConfigurerAdapter类,并覆盖其中的方法来实现拦截。可以使用http对象定义请求的安全规则,例如需要登录、需要特定角色等。也可以使用configure方法配置认证提供者、用户服务、密码编码器等。
- 目的:
-
AOP拦截:
- 目的:AOP(面向切面编程)主要用于解耦横切关注点,如日志记录、事务管理等。它是一种编程范式,可以在方法调用前、后或异常抛出时插入额外的逻辑。
- 方式:通过定义切面和切点来实现拦截。切点定义了要拦截的方法或连接点,切面则定义了在何时和如何拦截这些连接点,并在拦截点处执行额外的逻辑。
总结起来,WebSecurityConfigurerAdapter主要用于配置和管理应用程序的安全性,通过继承和覆盖其中的方法来实现拦截。而AOP是一种横切关注点的解耦方式,可以在方法调用前、后或异常抛出时插入额外的逻辑。它们的目的和方式有所不同,但都可以用于实现在特定场景下的拦截和处理。
springboot中有哪些拦截器
在Spring Boot中,有以下几种类型的拦截器可供使用:
-
HandlerInterceptor接口:HandlerInterceptor接口是Spring MVC提供的拦截器接口。通过实现该接口,可以自定义拦截器来对请求进行拦截和处理。HandlerInterceptor接口包括preHandle、postHandle和afterCompletion等方法,可以在请求处理前、请求处理后以及视图渲染完成后执行相应的逻辑。
-
Filter接口:Filter接口是Java Servlet规范提供的过滤器接口,也可以在Spring Boot中使用。通过实现该接口,可以编写过滤器来对请求进行处理。过滤器可以在请求进入Servlet之前进行预处理,也可以在响应返回给客户端之前进行后处理。
-
@ControllerAdvice注解:@ControllerAdvice注解用于定义全局控制器建议(advice),可以将其用作拦截器。通过在类上添加@ControllerAdvice注解,并结合@ExceptionHandler、@InitBinder和@ModelAttribute等注解,可以实现全局的异常处理、数据绑定和模型属性处理。
-
WebRequestInterceptor接口:WebRequestInterceptor接口是Spring Web提供的一个接口,用于拦截Web请求。它与HandlerInterceptor接口类似,但更加通用,可以拦截不仅限于Spring MVC的请求,还包括其他Web请求。
需要注意的是,以上拦截器的作用范围略有不同。HandlerInterceptor和Filter接口主要用于拦截请求和响应,而@ControllerAdvice注解则更多地用于全局的异常处理和模型属性处理。而WebRequestInterceptor接口则是一个更为通用的接口,可以拦截各种Web请求。
根据实际需求,可以选择合适的拦截器类型来实现相应的功能。
本文对比了Spring中WebSecurityConfigurerAdapter用于安全管理的配置拦截与AOP的面向切面编程拦截。还介绍了SpringBoot中HandlerInterceptor、Filter、@ControllerAdvice和WebRequestInterceptor等拦截器的用途和应用场景。
616

被折叠的 条评论
为什么被折叠?



