Spring AOP下
在AOP之前、我们的程序一般是从上往下的顺序执行的;
横切面的关注点:就是我们按顺序执行程序时、不知道插入新的程序进来;也就是说只有当程序运行时才能表现出来。当我们碰到这个横切关注点后、需要对此问题进行分析;分析以后对问题进行模块化、模块化一般都会形成一个类,这个类一般就叫做切面类;这个切面类中要做的一般就是对横切性问题给出具体的实现也就是关注点的实现方法、这个方法在AOP中叫做通知;通知可以分为三类:前置通知:就是目标方法执行之前
后置通知:目标方法执行之后
环绕通知:目标方法执行前后
程序中、我们要使用通知的话,一般要有条件;满足这个条件才能使用通知、而条件就叫做切入点。当这个切入点满足通知的条件后、程序运行时通知被应用在具体的那个目标方法点上。这个点叫做连接点、作用:它会封装目标方法上所属信息;信息包括参数、属性等等。
下面我们来看总的流程图吧:
基于以上流程、我们在spring中具体实现:
先定义一个横切面类,再写方法:横切性关注点实现方法即通知
使用spring AOP后,从IOC容器中获取Bean实例,满足AOP中配置的Pointcut条件后;自动返回bean实例的代理对象
TestHibernateDAO hibernateDAO = (TestHibernateDAO)context.getBean("hibernateDAO");
//获取对象后、在执行要执行的方法;这个方法跟AOP中拦截的表达式相关