独自快乐|spring框架的入门学习:AOP和面向切面的事务( 五 )
第一创建目标对象
public interface UserService { public void add(); public void delete();}public class UserServiceImpl implements UserService { @Override public void add() {//这里的工作是增加userSystem.out.println("增加"); } @Override public void delete() {//这里的工作是删除userSystem.out.println("删除"); }}第二:设计通知
设计一个类 , 这个类中专门存放需要代理对象的通知 , 通知总共分为五种:
前置通知 :目标方法运行之前调用
后置通知(如果出现异常不会调用):在目标方法运行之后调用
环绕通知:在目标方法之前和之后都调用
异常拦截通知:如果出现异常,就会调用
后置通知(无论是否出现 异常都会调用):在目标方法运行之后调用
package com.huang.aop;import org.aspectj.lang.ProceedingJoinPoint;public class MyAdvice { //前置通知public void before(){System.out.println("这是前置通知!!");}//后置通知public void afterReturning(){System.out.println("这是后置通知(如果出现异常不会调用)!!");}//环绕通知public Object around(ProceedingJoinPoint pjp) throws Throwable {System.out.println("这是环绕通知之前的部分!!");Object proceed = pjp.proceed();//调用目标方法System.out.println("这是环绕通知之后的部分!!");return proceed;}//异常通知public void afterException(){System.out.println("出事啦!出现异常了!!");}//后置通知public void after(){System.out.println("这是后置通知(出现异常也会调用)!!");}}第三步:织入(使用配置的方式)
织入分为三步:
1.配置目标对象
2.配置通知对象
3.配置将通知织入目标对象
这个配置分为三部分:
第一部分是配置目标对象 , 使用bean的方式
第二部分是配置通知对象 , 使用bean的方式
第三部分是织入 , execution(* com.huanfeng.service.*ServiceImpl.*(..))是固定的第一个*表示返回值任意 , 然后Service前面的*表示Service前面的任意 , 然后后面的*表示这个*ServiceImpl下面的所有的方法 , (..)表示方法的参数是任意的 , 我们给这样的切点起名为pc , 然后我们就就可以使用aop:aspect来进行织入了 , ref表示增强的方法类 , 然后在内部对pc进行织入 。
此时对应的这个类就被增强了
测试:
cishipackage com.huanfeng.shiyan;import javax.annotation.Resource;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.huanfeng.bean.User;import com.huanfeng.service.UserService;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:applicationContext.xml")public class Demo { @Resource(name="userService") private UserService us;@Test public void fun1(){us.add(); } }
推荐阅读
- 快乐棒棒糖|众多男神女神加盟,看看有你期待的人吗,江苏晚会阵容曝光
- 董事长|华熙生物董事长:公司围绕“健康、美丽、快乐事业”不断投入
- 高管|华熙生物董事长:公司围绕“健康、美丽、快乐事业”不断投入
- 何伟|【高管面对面】华熙生物:保留初心 做健康美丽快乐事业
- 可馨说娱乐1|官宣加入恋综,萧亚轩动态轰动了,金莎发文“想体验萧亚轩快乐”
- 过得比我快乐|领土只能远远看着!,世界没有完成统一的3个发达国家
- 白夜追娱1|唯独不见黄明昊引热议,粉丝晒照片打脸黑粉,谢娜晒快乐家族合影
- 小海|原创玖月奇迹王小玮官宣离婚后,独自登上央视舞台,组合已经解散?
- 用智能引领快乐走进新的领域|古代名将能像影视剧游戏中一样挡住乱箭齐发吗?真有一个人能挡住
- 用智能引领快乐走进新的领域|结果悲剧了,网友称厉害了,皇帝竟娶了祖孙两代
