系统学习Spring之Spring in action(八)
每日一叨:
又到星期四啦,心情不错,继续努力的积累知识点咯.
文章导读:
1.面向切面编程之注解篇
知识点:
1.面向切面编程之注解篇
前面学习了如何用XML配置去使用SpringAOP,为了减少XML的配置,Spring还支持了AOP的注解功能.这几个注解就不多介绍了,很容易理解.
通过事例来学习如何使用注解实现SpringAOP:
public class DrinkCoffee{ //正在喝咖啡就是这个做例子吧 public void drink(){ System.out.println("咖啡真好喝." ); } }
@Aspect public class Coffee { @Pointcut("execution(* com.ricky.zero.pojo.DrinkCoffee.drink(..))") public void marker(){ } @Before(value = "marker()") public void beforeDrinkCoffee(){ System.out.println("首先把水烧开,把咖啡粉倒入杯中,倒入适量的白开水,然后用勺子搅拌."); } //喝咖啡之后 @AfterReturning(value = "marker()") public void afterDrinkCoffee(){ System.out.println("咖啡太好喝了,好想在喝一杯..."); } @AfterThrowing(value = "marker()") //水放少了,咖啡有点苦. public void somethingIsWrong(){ System.out.println("一不小心把水放多了,味道比较淡,口感欠佳."); } @After(value = "marker()") //喝完咖啡要记得洗杯子哦. public void washCup(){ System.out.println("喝完咖啡后洗杯子."); } //把所有步骤都放到一个方法里 public void allInOne(ProceedingJoinPoint p){ try { System.out.println("首先把水烧开,把咖啡粉倒入杯中,倒入适量的白开水,然后用勺子搅拌."); p.proceed(); System.out.println("咖啡太好喝了,好想在喝一杯..."); } catch (Throwable e) { // TODO Auto-generated catch block System.out.println("一不小心把水放多了,味道比较淡,口感欠佳."); }finally{ System.out.println("喝完咖啡后洗杯子."); } } }
XML配置文件:
<bean id="coffee" class="com.ricky.zero.pojo.Coffee"></bean> <bean id="drinkCoffee" class="com.ricky.zero.pojo.DrinkCoffee"></bean>
运行测试,并得到结果如下:
首先把水烧开,把咖啡粉倒入杯中,倒入适量的白开水,然后用勺子搅拌.
咖啡真好喝.
喝完咖啡后洗杯子.
咖啡太好喝了,好想在喝一杯...
上面的事例中,最难懂的应该是marker()方法,marker方法是一个空方法,它的作用就是相当于一个标记的作用,可以把注解绑定到的这个标记上.
上面的事例是与XML配置实现的SpringAOP对应的.
这个是与XML配置实现的SpringAOP对应的第二个事例:
修改Coffee类:
@Aspect public class Coffee { @Pointcut("execution(* com.ricky.zero.pojo.DrinkCoffee.drink(..))") public void marker(){ } @Around(value = "marker()") //把所有步骤都放到一个方法里 public void allInOne(ProceedingJoinPoint p){ try { System.out.println("首先把水烧开,把咖啡粉倒入杯中,倒入适量的白开水,然后用勺子搅拌."); p.proceed(); System.out.println("咖啡太好喝了,好想在喝一杯..."); } catch (Throwable e) { // TODO Auto-generated catch block System.out.println("一不小心把水放多了,味道比较淡,口感欠佳."); }finally{ System.out.println("喝完咖啡后洗杯子."); } } }
运行并得到测试结果:
首先把水烧开,把咖啡粉倒入杯中,倒入适量的白开水,然后用勺子搅拌.
咖啡真好喝.
咖啡太好喝了,好想在喝一杯...
喝完咖啡后洗杯子.
SpringDI和SpringAOP到这里就结束了.关于Spring其它的知识,后天在来更新吧,,明天晚上可以轻松一下,打几局DOTA咯.
--------------------------------申明----------------------------
本文可以免费阅读以及转载,转载时请注明出处.
本人邮箱:Ricky_LS@163.com
Thank you for your corporation.
成功的人总是找方法,失败的人总是找理由 .