IOC(DI), AOP 笔记

几个名词的简称:IOC(Inversion Of Control), DI(Dependency Injection), AOP(Aspect Orient Program), POJO(Persistent Of Java Object), DAO(Data Access Objectd)

什么是IOC(ID), 有什么好处:1. 把自己new的东西改为由容器提供(初始化具体值,装配);2. 好处是灵活装配

注解:@Autowired: 自动装配;@Qulifier: 声明唯一使用特定Bean,当自动装配时Bean不唯一时可使用;Component, Respository, Service, Controller: 自动扫描时使用,当有此标签时,会自动装配,这四个注解在2.5上面没有任何区别;Resource: 默认按名称进行装配,若需要按名称进行装配则为@Resource("userDAO"),按类型进行装配,需要在xml文件里进行声明;Scope("prototype"): 单例(singlton), 实例(prototype);@PostContrustruct, @PreDestroy:相当于init和destroy.

最简单的AOP实现只需涉及3个概念:

目标(Target) 通知(Advice) 代理(Proxy)
真正需要被代理的类,一般它会实现至少一个类 当目标的调用方法时需要调用的代码,也叫拦截器 加入了通知的目标,它可以作为目标的替身出现

BeforeAdvice: 在目标类执行前执行

AroundAdvice: 在目标类执行中执行

AfterAdvice: 后执行

ThrowableAdvice: 异常类执行

假设我现在要在目标类前加入某个验证,我只需要添加一个BeforeAdvice类,就可以实现,这就是AOP。

@Aspect: 切面注入类

@Before: 在某些类/方法之前执行,参数格式为(public void com.garin.UserService.save(User u))

概念:JoinPoint: 连接点

PointCut: 切入点的集合即JoinPoint的集合, 语法@PointCut("ececution (* com.garinzhang.*.*(...))")

Aspect: 切面(类加上去的逻辑,切面类):

Advice: 加在切面类上

Target: 被代理对象,把业务逻辑到哪些方法上。

路慢慢其休远羲,吾将上下而求所
原文地址:https://www.cnblogs.com/garinzhang/p/2944062.html