过滤器为什么不叫AOP
Java中的过滤器(Filter)和AOP(面向切面编程)是两个不同的概念和技术。
- 过滤器(Filter): 过滤器是Java Servlet规范中的一部分,用于在Servlet容器中对请求和响应进行预处理和后处理。过滤器允许开发者在请求到达Servlet之前或者响应返回客户端之前,对请求和响应进行一些通用的处理。过滤器通常用于一些公共的任务,如日志记录、权限验证、字符编码转换等。过滤器只能对请求和响应进行一些基本的处理,它们不能直接修改方法的执行逻辑。
- AOP(面向切面编程): AOP是一种编程范式,它允许开发者在程序执行的过程中,通过横切关注点(Cross-cutting Concerns)将不同模块的功能进行分离,从而实现代码的解耦合。在AOP中,可以定义一些横切关注点,并通过切面(Aspect)将这些关注点模块化。切面可以在代码中的多个地方进行复用,避免了代码的重复编写,提高了代码的可维护性和可读性。
虽然过滤器和AOP都涉及到在程序执行过程中的一些处理,但它们的目的和使用场景是不同的。过滤器主要用于Servlet容器中的请求和响应处理,而AOP主要用于分离和复用横切关注点。过滤器通常用于处理请求级别的逻辑,而AOP可以用于处理方法级别的逻辑。因此,虽然两者都是处理程序执行过程中的操作,但它们的设计和用途是不同的。
Spring AOP 实现原理
实现接口的类 jdk动态代理
没有实现接口 cglib动态代理
代理模式