关于TargetServiceFactoryVisitable的疑问

06-03-23 javabill
1。com.jdon.bussinessproxy.target.TargetServiceFactoryVisitable的实现在com.jdon.aop.reflection.MethodInvokerUtil.createTargetObject调用时得以实现,该方法代码如下

public Object createTargetObject(TargetServiceFactory targetServiceFactory, TargetMetaRequest targetMetaRequest) {
        Debug.logVerbose("[JdonFramework] now getTargetObject by visitor ", module);
        Object targetObjRef = null;
        try {

            if (targetMetaRequest.getTargetMetaDef().isEJB()) { //cache the ejb object
                ComponentVisitor cm = targetMetaRequest.getComponentVisitor();
                targetMetaRequest.setVisitableName(ComponentKeys.TARGETSERVICE_FACTORY);
                Debug.logVerbose(ComponentKeys.TARGETSERVICE_FACTORY + " in action (cache)", module);
                targetObjRef = cm.visit(targetMetaRequest);
            } else {
                Debug.logVerbose("[JdonFramework] not active targer service instance cache !!!!", module);

                targetObjRef = targetServiceFactory.create(targetMetaRequest.getTargetMetaDef());
            }
        } catch (Exception e) {
            Debug.logError("[JdonFramework]createTargetObject error: " + e, module);
        }
        return targetObjRef;
    }

TargetServiceFactoryVisitable 最终调用的还是targetServiceFactory.create(targetMetaRequest.getTargetMetaDef());不知道 “if (targetMetaRequest.getTargetMetaDef().isEJB()) { //cache the ejb object”有什么作用

2。缓存ejb,pojo对象好像都是在HttpSessionProxyVisitor来实现,不知道这个我理解对吗

恳请板板桥老师给以解答,深表感谢。不会再象上次的回答了无音讯吧。

banq
2006-03-28 15:03
上次问题没有看到,见谅了。

》缓存ejb,pojo对象好像都是在HttpSessionProxyVisitor来实现

这段代码是缓存EJB Object的引用的,而POJO则没有缓存,根据应用程序设定是Pool或Session来决定,如果应用POJO是session,则保存在HttpSession中。

猜你喜欢