Java中的AOP、过滤器、拦截器、监听器

1. AOP(面向切面编程,Aspect-Oriented Programming)

(1)AOP是一种编程范式,旨在通过“切面”(Aspect)来对系统的横切关注点进行模块化。横切关注点通常是那些跨越多个模块的功能,比如日志记录、事务管理、安全控制等。
(2)特点:
切面:定义了跨越多个类的行为,通常通过@Aspect注解来标识。
通知(Advice):指定了切面应执行的行为,通常有不同的类型,如@Before(方法执行前)、@After(方法执行后)、@Around(方法执行前后)等。
切点(Pointcut):定义了哪些方法应该被通知(拦截)。
连接点(Joinpoint):程序执行过程中的某个点,可以在这个点上插入切面的逻辑。
(3)示例:
使用Spring AOP时,通常通过@Aspect注解定义切面,@Before和@After注解指定通知。例如:

@Aspect
@Component
public class LogAspect {
   
   

    @Before("execution(* com.example.service.*.*(..))")
    public void logBefore(JoinPoint joinPoint) {
   
   
        System.out.println("Method " + joinPoint.getSignature().getName() + " is about to be called.");
    }
}

AOP适用于跨切关注点的处理,比如日志、事务管理、权限控制等。

2. 过滤器(Filter)

(1)过滤器是基于Servlet的概念,用于在请求和响应被处理前后做一些处理,通常用于Web应用中进行请求预处理和响应后处理。它不依赖于Spring框架,属于Java EE规范的一部分。
(2)特点:
生命周期:由容器管理(如Tomcat),在web应用启动时加载,过滤器会根据web.xml配置进行初始化。
功能:可以用于日志记录、权限校验、输入数据清理等操作。
作用范围:对HTTP请求进行过滤,并可以修改请求或响应内容。
(3)示例:

@Web
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值