谈谈对ioc,aop的理解

Ioc:控制反转

      定义:Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的                   对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,                   控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下:

      正转与反转:

                正转:传统的应用程序由我们在对象中主动去创建对象依赖

                反转:程序中需要的对象由ioc容器创建,程序直接调用即可。

     DI(依赖注入):

                被注入对象依赖IoC容器配置依赖对象

     注入对象方式:注解,xml配置(传参:构造方法,set)

     

      ioc容器控制对象,应用程序依赖于ioc容器,ioc容器注入某个对象,

      注入某个对象所需要的外部资源(包括对象、资源、常量数据)

扫描二维码关注公众号,回复: 4861000 查看本文章

Aop:面向切面编程

    实现:比如日志,事务,权限

    AOP的基本概念:

      (1)Aspect(切面):通常是一个类,里面可以定义切入点和通知

      (2)JointPoint(连接点):程序执行过程中明确的点,一般是方法的调用

      (3)Advice(通知):AOP在特定的切入点上执行的增强处理,有before,after,afterReturning,afterThrowing,around

      (4)Pointcut(切入点):就是带有通知的连接点,在程序中主要体现为书写切入点表达式

      (5)AOP代理:AOP框架创建的对象,代理就是目标对象的加强。Spring中的AOP代理可以使JDK动态代理,

          也可以是CGLIB代理,前者基于接口,后者基于子类

   底层:

      spring aop默认实现的是jdk的动态代理,当代理的是类的时候,自动切换cglib代理;

       jdk:基于接口    cglib:基于子类

      

猜你喜欢

转载自blog.csdn.net/qq_37751454/article/details/83620350