网站建设 之 AOP,cookie登录保持

本文介绍了拦截器、过滤器和切片在处理HTTP请求时的不同作用和适用场景。过滤器依赖于Servlet容器,主要用于web环境,控制较粗粒度;拦截器依赖于Spring容器,提供更细粒度的控制,可以处理Controller前后;切片则能获取到方法参数信息,但无法获取HTTP请求信息。选择使用拦截器还是过滤器取决于具体需求,如非Spring项目只能使用过滤器,而处理Controller前后两者皆可。
摘要由CSDN通过智能技术生成

拦截机制有三种:

1. 过滤器(Filter)能拿到http请求,但是拿不到处理请求方法的信息。

2. 拦截器(Interceptor)既能拿到http请求信息,也能拿到处理请求方法的信息,但是拿不到方法的参数信息。

3. 切片(Aspect)能拿到方法的参数信息,但是拿不到http请求信息。

什么意思呢?

  • 作用域不同
    • 过滤器依赖于servlet容器,只能在 servlet容器,web环境下使用
    • 拦截器依赖于spring容器,可以在spring容器中调用,不管此时Spring处于什么环境
  • 细粒度的不同
    • 过滤器的控制比较粗,只能在请求进来时进行处理,对请求和响应进行包装
    • 拦截器提供更精细的控制,可以在controller对请求处理之前或之后被调用,也可以在渲染视图呈现给用户之后调用

 何时使用拦截器?何时使用过滤器?

  1. 如果是非spring项目,那么拦截器不能用,只能使用过滤器。
  2. 如果是处理controller前后,既可以使用拦截器也可以使用过滤器。
  3. 如果是处理dispaterServlet前后,只能使用过滤器。

@Configuration标注在类上,相当于把该类作为spring的xml配置文件中的<beans>,作用为:配置spring容器(应用上下文)

实际上Bean就是一个类+初始化参数而已,用特定的函数寻找,工厂模式而已。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Spring AOP(面向切面编程)是Spring框架的一个核心组件,它允许开发者对切面进行声明,从而定义横切关注点(cross-cutting concerns),比如日志、安全和事务管理等。在Spring AOP中实现登录验证通常涉及到以下几个步骤: 1. **定义切入点(Pointcut)**:切入点用来定义哪些类和方法会受到AOP代理的影响,即我们的登录验证逻辑将应用于哪些方法。 2. **创建切面(Aspect)**:切面是切点和通知(Advice)的结合。通知定义了切点执行前、执行后、抛出异常后要执行的动作。 3. **编写通知(Advice)**:通知是实际执行的动作,比如进行登录验证的逻辑。Spring AOP支持多种类型的通知,如前置通知(Before)、后置通知(After)、环绕通知(Around)等。 4. **使用注解或配置方式**:可以使用Spring的注解(例如 @Aspect, @Before, @After 等)或XML配置来定义切点和通知。 一个简单的登录验证切面的实现示例可能如下: ```java import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.JoinPoint; import org.springframework.stereotype.Component; @Aspect @Component public class LoginAspect { // 定义切入点,这里假设所有添加了@LoginRequired注解的方法都需要进行登录验证 @Pointcut("@annotation LoginRequired") public void loginRequired() {} // 前置通知,在切入点方法执行前进行操作 @Before("loginRequired()") public void checkLoginStatus(JoinPoint joinPoint) { // 这里进行登录状态的验证逻辑 // 比如检查Session或者Token等 } } ``` 然后,你可以在需要进行登录验证的方法上使用`@LoginRequired`注解: ```java public class SomeService { @LoginRequired public void securedMethod() { // 业务逻辑 } } ``` 通过这种方式,当`securedMethod`被调用时,AOP切面会自动进行登录验证的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值