spring基础知识
-
Spring IOC(控制反转):
作用:通过引入IOC容器,利用依赖关系注入的方式,实现对象之间的解耦
实现原理:注解(标识)、反射、工厂 -
Spring AOP(面向切面):
作用:在不修改源代码的情况下,可以实现功能的增强
AOP思想:基于代理思想,对原来目标对象,创建代理对象,在不修改原对象代码情况下,通过代理对象,调用增强功能的代码,从而对原有业务方法进行增强
实现原理:AOP 框架负责动态地生成 AOP 代理类,这个代理类的方法则由 Advice 和回调目标对象的方法所组成。
实现技术:jdk动态代理、CGLIB动态代理
核心概念:
切面(Aspect):是一个类,里面定义了通知与切点
切点(PointCut):表达式。就是告诉程序要在执行哪些核心业务的时候,执行非核心的业务
@Pointcut("execution(* com.suning.retailcloud.iss.dao..(..))")
通知(advice):五种通知方式:
@Before:前置通知,在调用目标方法之前执行通知定义的任务
@After:后置通知,在目标方法执行结束后,无论执行结果如何都执行通知定义的任务
@After-returning:后置通知,在目标方法执行结束后,如果执行成功,则执行通知定义的任务
@After-throwing:异常通知,如果目标方法执行过程中抛出异常,则执行通知定义的任务
@Around:环绕通知,在目标方法执行前和执行后,都需要执行通知定义的任务。
普通顺序:Around --> Before --> (业务) --> Around --> After --> After-returning
异常顺序:Around --> Before --> (业务) --> After --> After-throwing -
Spring多个配置加载:
web.xml中增加如下配置,多个配置文件用逗号分隔:
contextConfigLocation
classpath:conf/spring/applicationContext_core.xml,
classpath:conf/spring/applicationContext_dict.xml,
classpath*:conf/spring/applicationContext_hibernate.xml,
org.springframework.web.context.ContextLoaderListener