首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Picocontainer 2.14.3和AOP

Picocontainer 2.14.3和AOP
EN

Stack Overflow用户
提问于 2014-07-23 18:35:28
回答 2查看 129关注 0票数 1

我正在尝试将AOP与picocontainer结合使用。

到目前为止,我在文档中找到了:http://picocontainer.codehaus.org/interception.html

代码语言:javascript
复制
pico = new DefaultPicoContainer();  
pico.as(INTERCEPT).addComponent(Apple.class, BraeburnApple.class);  

然后创建拦截器,但是查看代码,我在任何地方都找不到INTERCEPT属性。

as接收一个Properties值,该值由pico在Characteristic类中实现。

有没有人有一个线索,或者以前已经实现过,并知道如何保持下去?

谢谢

EN

回答 2

Stack Overflow用户

发布于 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仍然有这些类,我想这种方式是可以的

票数 0
EN

Stack Overflow用户

发布于 2015-06-17 16:17:37

这对我很有效。首先,通过扩展bean来创建代理:

代码语言:javascript
复制
public static class ChangeMapInfoEndpointInterceptor extends MapInfoRoutingManagementBean {
    @Override
    public void setEndpoint(String endpoint) {
        System.out.println("setEndpoint called");
    }
}

然后将其传递给截取样式的容器:

代码语言:javascript
复制
    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());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24908145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档