有个非web项目,想通过aop来控制事务,看了几种aop框架,性能都不太好,如果用nutz的aop来处理,能用吗?如果能用有没有例子?非常感谢!
5 回复
那写起来就比较麻烦咯, 需要自行替换到新建对象的步骤
@Test
public void aop_without_ioc() throws Exception {
Class<EmailServiceImpl> type = EmailServiceImpl.class;
ClassDefiner cd = DefaultClassDefiner.defaultOne();
ClassAgent agent = new AsmClassAgent();
agent.addInterceptor(new RegexMethodMatcher(".+"), // 匹配需要拦截的方法
new MethodInterceptor() { // 定义一个拦截器
public void filter(InterceptorChain chain) throws Throwable {
System.out.println("before");
chain.doChain();
System.out.println("after");
}
});
Class<EmailServiceImpl> klass = agent.define(cd, type); // 生成被aop化的类
EmailServiceImpl es = klass.newInstance(); // 生成被aop化的对象
es.send(null, null, null); // 调用原类的各种方法
}
输出
before
send mail xxx.,xxxx,,xxx
after
添加回复
请先登陆