对于Spring框架的理解:
Spring是一款轻量级的开发框架,它的主要思想是IOC和AOP,Spring主要用于组件之间的解耦,为Java应用程序开发提供基础性的组件服务,Spring也可以很好的集成一些第三方的JavaEE中间件技术。
IOC:
IOC(Inversion of Control),控制反转,它是Spring框架的核心思想之一,控制反转的意思就是将创建对象的权力交给容器,让容器来帮我们创建对象,容器会根据配置文件或注解帮我们创建出对象,并管理对象的生命周期
AOP:
AOP指面向前面编程,指将那些与业务无关却又是业务所共同调用的逻辑封装成一个可重用的模块,那这个模块就叫做切面,便于减少系统间重复的代码,降低模块间的耦合度,便于未来的可扩展性和可维护性;
AOP主要是根据动态代理实现的,如果被代理的对象已经实现了某个接口,则会根据JDK的基于反射的动态代理来创建代理对象,基于JDK反射的动态代理需要实现InvocationHandler接口;
如果说被代理对象没有实现接口,则会使用cglib的基于继承的方式创建代理对象,基于cglib的动态代理需要实现MethodInteptor接口