AOP
连接点:层与层之间调用过程中,目标层中可提供调用的方法,称之为连接点
切入点:在连接点基础上增加切入规则,这些被切入规则筛选出的连接点称之为切入点
切面:spring拦截下切入点之后,将其交给处理类来进行功能的增强,这个处理类就称之为切面–@Aspect注解
通知:在将切入点交给切面之后,切面类中将功能增强的方法交做通知
—“around”、“before”和“after”等不同类型的通知
目标对象:真正需要被访问的对象
实现过程:
1.导包:+96、aspect*2、springaop、springasp
2.创建配置文件,导入aop约束
3.创建切面类—处理的类
4.定义通知—处理的方法
5.配置切面、通知、切入点规则
//配置aop
aop:config
//配置切面类
<aop:aspect ref=”firstAspect”>
//配置通知
<aop:before method=”before”
//切入点规则
Pointcut=”within(cn.tedu.service.UserServiceIml)”/>
</aop:aspect>
</aop:config>
注解
@Component一般认为是通用的注解
@Controller用在软件分层中的控制层,一般用在web层
@Service用在软件分层中的业务访问层,一般用在service层
@Repository用在软件分层中的数据访问层,一般用在dao层
底层实现原理:
目的:为了让程序达到“高内聚”的效果。
程序因存在大量重复代码,开发效率低下,此时可以通过代理设计模式,将这部分重复代码提取到代理者中,简化层中的代码
代理设计模式:
静态代理
动态代理
java动态代理
cglib动态代理