发表于: 2017-07-28 21:11:41
2 967
今天完成的主要事情:
1.学习springAOP的注解式的使用
@Aspect注解表示是该类是一个通知类
@Before,@After,@AfterReturning,@Around,@Afterthrowing几个注解分别标注在方法上,分别表示该方法是前置,后置(异常不执行),后置(异常执行),环绕,有异常时抛出.
@Pointcut表示到底是增强哪个类中的方法
上一段springAOP注解使用的代码
@Component(value="logAdvice")
@Aspect
public class LogAdvice {
@Pointcut("execution(* com.putaoteng.aop.service.*DaoImpl.*(..))")
private void selectAll(){}
/*@Pointcut("execution(")
private void selectHello(){}*/
@Before("selectAll()")
public void before(){
System.out.println("这是一个前置通知!!");
}
@After("selectAll()")
public void after(){
System.out.println("这是一个后置通知!!(遇到异常不通知)");
}
@Around("selectAll()")
public Object around(ProceedingJoinPoint pjp) throws Throwable{
System.out.println("这是一个环绕通知!!(方法执行前)");
Object obj = pjp.proceed();
System.out.println("这是一个环绕通知!!(方法执行后)");
return obj;
}
@AfterThrowing("selectAll()")
public void afterException(){
System.out.println("这是一个异常通知!!");
}
@AfterReturning("selectAll()")
public void afterAdvice(){
System.out.println("这是一个后置通知!!(遇到异常通知!)");
}
}
beans.xml文件配置
只需要两行代码就可以使用AOP.
2.尝试学习了动态代理的相关知识
都说springAOP是由JDK动态代理和CGlib代理实现的,今天尝试学习一下动态代理的基础知识.代码虽然写了出来,但是还是不是很明白,整体思想大概就是为了解决静态代理中要为每一个目标类写一个代理类的问题.具体实现就是传给代理类的对象是Object对象,然后在运行时使用反射技术生成目标对象并执行对象中的方法.
3.尝试解决小罗的一个实例的问题,但是没有成功.
总结:今天的效率很低,明显感觉不在状态,可能是因为一个任务结束有些懈怠,感觉一天都没干什么实质性的事情,就准备了一个小课堂.明天不能再这样了,必须全身心的投入到任务四.
二.明天的计划:
1.掌握JSP的基本语法,然后开始写jsp文件.
2.搞明白任务四的需求是干嘛的,我到底需要做哪些工作
三.遇到的问题:
暂无
四.收获
springAOP的注解使用
评论