JVM-双亲委派
1. 类加载器 ClassLoader ClassLoader的主要作用就是在Class装载的加载阶段,其主要作用是从系统外部获得Class二进制数据流。 ClassLoader是Java的核心组件,所有的Class都是由ClassLoader进行加载的,ClassLoader通过各种方式将Class信息的二进制数据流读入系统,然后交给JVM进行连接和初始化操作。故只会影响类的加载过程。…
Aspect是一种新的模块化机制,用来描述分散在对象,类或函数中的横切关注点。从关注点中分离出横切关注点是面向切面的程序设计的核心概念。
分离关注点使解决特定领域问题的代码从业务逻辑中独立出来,业务逻辑的代码中不再含有针对特定领域问题代码的调用,业务逻辑同特定领域问题的关系通过切面来封装、维护,这样原本分散在整个应用程序中的变动就可以很好的管理起来了。
**Advice通知:**Advice定义在连接点做什么,为切面增强提供织入接口。接口定义在 org.aopalliance.aop.Advice
中,如下面的BeforAdvice
,定义了一个为待增强的目标方法设置的前置增强接口 MethodBeforeAdvice
里面放置一个回调接口:
void before(Method method, Object[] args, @Nullable Object target) throws Throwable;
Pointcut切点:切点决定Advice通知应该作用于那个连接点,也就是说通过Pointcut来定义需要增强的方法的集合,这些集合的选取可以按照一定的规则来完成(比如可以按照正则表达式来选取)。
Advisor通知器:完成对目标方法的切面增强设计(Advice)和关注点的设计(Pointcut)以后,需要一个对象把他们结合起来,完成这个功能的就是Advisor(通知器)。通过Advisor,可以定义应用使用哪个通知并在哪个关注点使用它。
配值ProxyFactoryBean
可以参见:Spring-Spring-AOP使用
然后采用两种方式生成AopProxy对象,如果目标对象实接口类,那么适合使用JDK来生成代理对象,否者Spring会使用CGLIB来生成目标对象的代理对象。
具体的可以参见 Spring-AOP简介与代理方式
生成完代理对象后,就是配置拦截器的调用
未完。。。
1. 类加载器 ClassLoader ClassLoader的主要作用就是在Class装载的加载阶段,其主要作用是从系统外部获得Class二进制数据流。 ClassLoader是Java的核心组件,所有的Class都是由ClassLoader进行加载的,ClassLoader通过各种方式将Class信息的二进制数据流读入系统,然后交给JVM进行连接和初始化操作。故只会影响类的加载过程。…
SpringMVC入门 SpringMVC 和 Struts2都属于表现层框架,它是Spring框架的一部分。 1. SpringMVC处理流程 2. SpringMVC 架构…