springIOC概念和原理: 控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理 使用IOC目的:为了耦合度降低 IOC思想是基于IOC容器完成,IOC容器底层就是对象工厂。 Spring提供了IOC容器2中实现方式:(俩个接口) BeanFactory:IOC容器基本实现,是Spring内部使用的一个使用接口,不提供开发人员使用 。 加载配置文件的时候不会创建对象,在获取对象(使用)才去创建对象 ApplicationContext:BeanFactory接口的一个子接口,提供更多更强大的功能,一般有开发人员进行使用。 IOC底层原理 FileSystemXmlApplicationContext是一路径的来进行解析的 ClassPathXmlApplicationContext是用路径来解析的 AOP底层原理 AOP底层使用动态代理 俩种情况动态代理 第一种是接口情况,使用JDK动态代理 创建接口实现类代理对象,增强类的方法。 IOC操作Bean管理(基于XML方式) 如:
在Spring配置文件中,使用bean标签,标签里面添加对应属性,就可以实现对象创建 在bean标签有很多属性,比如id属性唯一标识,class属性是类全文路径 创建对象时候,默认也是执行无参构造器方法完成对象 创建 第二种情况没有接口情况,使用CGLIB动态代理 创建子类的代理对象,增强类的方法。 JDK动态代理使用Proxy类里面的方法创建代理对象 调用Proxy里面的new ProxyInstance方法 方法中有是哪个参数 : 类加载器 增强方法所在的类,这个类实现的接口,支持多个接口 实现这个接口InvocationHandler,创建代理对象,写增强的方法