想使用nutz aop注解,发现1.b.51版本并没有,于是把SimpleAopMaker拷贝过来。
按文档依次编写拦截器、自定义注解,编写单元测试用例。在用单元测试执行方法时候,没有进入拦截器。
@IocBean
public class SayDemo {
@SysLog
public void sayLove(){
System.out.println("I love u");
}
}
public class SayDemoTest extends BaseTest{
@Inject
private SayDemo sayDemo;
@Test
public void test_sayLove(){
sayDemo.sayLove();
}
}
@IocBy(type=ComboIocProvider.class,args = {
"*org.nutz.ioc.loader.json.JsonLoader", "ioc/",
"*org.nutz.ioc.loader.annotation.AnnotationIocLoader", "net.wendal.quartzdemo",
"net.wendal.quartzdemo.aop.DemoAopLoader"}) // 添加quartz插件引用
@Modules(scanPackage = true)
public class MainModuleForJunitTest {
}
public class DemoAopLoader extends SimpleAopMaker<SysLog> {
public List<? extends MethodInterceptor> makeIt(SysLog sysLog, Method method, Ioc ioc) {
return Arrays.asList(new SysLogMethodInterceptor());
}
class SysLogMethodInterceptor implements MethodInterceptor {
public void filter(final InterceptorChain chain) throws Throwable {
System.out.println("hi");
chain.doChain(); // 继续下一个拦截器, 如果要终止执行,不调用该方法即可
System.out.println("byte");
}
}
}
恢复到1.r.60版本,跑测试用例也没发现进入拦截器。
问题:
1、请问是否只有http请求进来才进声明的拦截器?
2、1.b.51版本想使用,以来办法是否正确?