一,顾问包装通知
通知(advice)是Spring中的一种比较简单的切面,只能将切面织入到目标类的所有方法中,而无法对指定方法进行增强
顾问(advisor)是Spring提供的另外一种切面,可以织入到指定的方法中 接口 PointcutAdvisor
实现类:NameMatchMethodPointcutAdvisor(基于方法名称的增强顾问),RegexpMethodPointcutAdvice(基于正则表达式的增强顾问)
以上文件使用的是NameMatchMethodPointcutAdvisor,当然也可替换成为 RegExpMethodPonitcutAdvisor,基于正则表达式通配方法名的顾问,可配置性更加优良。
二,顾问代理生成器
顾问代理生成器主要分两种
自动顾问代理生成器:DefaultAdvisorAutoProxyCreator
名称顾问代理生成器:BeanNameAutoProxyCreator
名称顾问代理生成器也可以替换成自动顾问代理生成器,自动顾问代理生成器默认为Spring中所有的Bean对象创建代理 无需使用ID注入
三,注解
IOC:
@Component:实现Bean组件的定义
@Repository:用于标注DAO类,功能与@Component作用相当
@Service:用于标注业务类
@Controller:用于标注控制器
DI:
@Resource(name="userService") 默认ByName方式,如果name确实默认按照ByType方式注入
@Autowired 默认ByType方式,如果出现同名类,则不能按照Type进行注入 需要使用@Qualifier 指明ID
AOP:
@Aspect 声明切面
@Ponitcut 声明公共的切点表达式
@Before 前置增强
@AfterReturning 后置增强
@Around 环绕增强
@AfterThrowing 异常抛出增强
@After 最终增强
(1)通过注解实现前置后置增强
(2) 使用注解实现异常抛出增强
(3)使用注解实现环绕增强
(4)使用注解实现最终增强