一:AOP:在不修改源代码的情况下给程序中多个点上动态统一添加功能的一种编程技术
(1)Aspect(切面):通常是一个类,里面可以定义切入点和通知
(2)JointPoint(连接点):程序执行过程中明确的点,一般是方法的调用
(3)Advice(通知):AOP在特定的切入点上执行的增强处理,有before,after,afterReturning,afterThrowing,around
(4)Pointcut(切入点):就是带有通知的连接点,在程序中主要体现为书写切入点表达式
(5)AOP代理:AOP框架创建的对象,代理就是目标对象的加强。Spring中的AOP代理可以是JDK动态代理,也可以是CGLIB代理,前者基于接口,后者基于子类
AspectJ共支持五种类型的增强注解:
- 前置增强 @Before
- 后置增强@After
- 返回增强@AfterReturning
- 异常增强@AfterThrowing
- 环绕增强@Around
详情链接:https://blog.csdn.net/ricardo_y_lu/article/details/96283713
二:在Spring的工作方式中,所有的类都会在spring容器中登记,告诉spring这是个什么东西,你需要什么东西,然后spring会在系统运行到适当的时候,把你要的东西主动给你,同时也把你交给其他需要你的东西。所有的类的创建、销毁都由 spring来控制,也就是说控制对象生存周期的不再是引用它的对象,而是spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,所以这叫控制反转
在系统运行中,动态的向某个对象提供它所需要的其他对象。