2008-03-18
aop 学习(一)
关键字: spring aop
最近琢磨aop,看了好多大虾的aop例子,对比xml方式与注解方式,先整理一下。
根据bencode的介绍
圣诞到了, 小A小B 介绍完自己之后,说 "Merry Christmas"。但是这个祝福语由Spring来完成。属于后置通知。
引导
注解方式
完全通过xml配置
以上两种方式都可以完成需要,代码也很清晰。
根据bencode的介绍
圣诞到了, 小A小B 介绍完自己之后,说 "Merry Christmas"。但是这个祝福语由Spring来完成。属于后置通知。
public class A {
public void sayHello() {
System.out.println("Hello, I'm a");
}
}
public class B {
public void sayHi() {
System.out.println("Hi, I'm b");
}
}
引导
public final class Boot {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext(
"applicationContext.xml");
A a = (A) ctx.getBean("a");
a.sayHello();
B b = (B) ctx.getBean("b");
b.sayHi();
}
}
注解方式
@Aspect
public class SimpleAspect {
@Pointcut("execution(* org.snowolf.*.say*())")
public void simplePointcut() { }
@AfterReturning(pointcut="simplePointcut()")
public void simpleAdvice() {
System.out.println("Merry Christmas");
}
}
<bean id="a" class="org.snowolf.A" /> <bean id="b" class="org.snowolf.B" /> <bean id="simpleAspect" class="org.snowolf.SimpleAspect" /> <aop:aspectj-autoproxy />
完全通过xml配置
public class SimpleAspect {
public void simpleAdvice() {
System.out.println("Merry Christmas");
}
}
<bean id="simpleAspect" class="org.snowolf.SimpleAspect" /> <aop:config> <aop:pointcut id="point" expression="execution(* org.snowolf.*.say*())" /> <aop:aspect id="simpleAspect" ref="simpleAspect"> <aop:after-returning method="simpleAdvice" pointcut-ref="point" /> </aop:aspect> </aop:config>
以上两种方式都可以完成需要,代码也很清晰。
发表评论
- 浏览: 4491 次
- 性别:

- 来自: 山西

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
acegi 我该从哪里取到用户 ...
1.你的用户信息Bean实现UserDetails接口。 2.你的角色对象Rol ...
-- by lendo.du -
acegi 我该从哪里取到用户 ...
支持一下
-- by hendryxu -
acegi 我该从哪里取到用户 ...
这个还是自己解决了 晕 每次都是一样 Authentication a ...
-- by snowolf -
acegi 我该从哪里取到用户 ...
关键是 用户登录后 在什么地方保存了用户的信息 在controller中如何取 ...
-- by snowolf -
acegi 我该从哪里取到用户 ...
是否可以考虑自己声明一个UserInfo类,实现org.acegisecurit ...
-- by Ivan Li






评论排行榜