1.谈谈你对Spring的理解
Spring是一种框架,很多代码的开发都依赖于它。它是一个存储bean的容器,管理整个bean的生命周期。bean的注入可以通过配置文件或者注解两种方式。当你程序启动的时候,Spring会把你配置文件中有关bean的信息去存储在一个叫BeanDefinition的对象里面,BeanFactory会根据你的对象信息进行扩展,生成一个新的对象,当你想要使用这个对象的时候,通过getbean的方式即可拿到。
2.bean的生命周期
1.bean实例化,通过配置文件或注解
2.bean的依赖注入,将这个bean相关的属性注入
3.有关aware接口的依赖注入,它会注入一些有关beanid,bean工厂的一些有关信息
4.BeanPostProcessor的一个前置的初始化
5.对象的本来的初始化
6.BeanPostProcessor的后置初始化操作
7.destroy的方式销毁对象
3.AOP的底层原理
使用动态代理的方式去实现的,当你扫描到一个AOP的注解时,它会生成一个该类的代理类对象,该代理对象会按顺序执行的切点的一个代码顺序
jdk的动态代理:实现接口
CGlib的动态代理:继承子类,用于没有接口的情况下