我正在尝试将AOP与picocontainer结合使用。
到目前为止,我在文档中找到了:http://picocontainer.codehaus.org/interception.html
pico = new DefaultPicoContainer();
pico.as(INTERCEPT).addComponent(Apple.class, BraeburnApple.class); 然后创建拦截器,但是查看代码,我在任何地方都找不到INTERCEPT属性。
as接收一个Properties值,该值由pico在Characteristic类中实现。
有没有人有一个线索,或者以前已经实现过,并知道如何保持下去?
谢谢
发布于 2014-07-24 22:43:56
看起来这个行为的属性在这个微微版本中不知何故丢失了,在旧版本中检查org.picocontainer.Characteristics,我真的希望它是在某个地方实现的:)
在pico中也有一种老式的拦截方式:http://www.markhneedham.com/blog/2008/11/11/logging-with-pico-container/
由于2.14.3版的org.picocontainer.behaviors仍然有这些类,我想这种方式是可以的
发布于 2015-06-17 16:17:37
这对我很有效。首先,通过扩展bean来创建代理:
public static class ChangeMapInfoEndpointInterceptor extends MapInfoRoutingManagementBean {
@Override
public void setEndpoint(String endpoint) {
System.out.println("setEndpoint called");
}
}然后将其传递给截取样式的容器:
MutablePicoContainer context = new PicoBuilder().withBehaviors(new Intercepting()).build();
context.addComponent(MapInfoRoutingManagement.class, MapInfoRoutingManagementBean.class);
Intercepted intercepted = context.getComponentAdapter(MapInfoRoutingManagement.class).findAdapterOfType(Intercepted.class);
intercepted.addPostInvocation(MapInfoRoutingManagement.class, new ChangeMapInfoEndpointInterceptor());https://stackoverflow.com/questions/24908145
复制相似问题