Spring
1.spring是什么?
spring是一个轻量级的Ioc和AOP容器框架,目的是简化企业级应用程序的开发,使开发者只需要关注业务需求的开发。
2.spring的ioc理解
1)Ioc就是控制反转,指将创建对象的控制权转移给spring框架进行管理,并由spring根据配置文件去创建实例和管理各个实例之间的依赖关系
2) DI:依赖注入,是ioc 的一种具体实现,即应用程序在运行过程中依赖ioc容器来动态注入所需要的某些对象
3)Ioc底层实现原理:xml解析、工厂模式、反射
4)spring的Ioc注入方式:构造器注入、setter方法注入、注解注入(xml需添加<context:component-scan base-package="xxx"/>扫描注解)、静态工厂注入、实例工厂注入。详细请转移
3.spring的AOP理解
1)什么是AOP?
一般称为面向切面,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽象封装成一个可重用的模块。减少系统中重复代码,降低模块间的耦合度,提供系统的可维护性,一般用于权限认证,日志,事务的处理。
2)AOP实现的关键在于代理模式 (静态代理的代表AspectJ,动态代理的代表SpringAOP)
*AspectJ是静态代理,也称为编译时增强,AOP框架会在编译阶段生成AOP的代理类,并将AspectJ(切面)织入到java字节码中,运行的时候就是增强之后的AOP对象。
*Spring AOP使用的是动态代理。所谓的动态代理就是说AOP框架不会去修改字节码,而是每次运行时在内存中临时为方法生成一个AOP对象,这个AOP对象包含了目标对象的全部方法,并且在特定的切点做了增强处理,并回调对象的方法。