加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

BlazeDS+spring整合到J2EE应用的最佳实践

发布时间:2020-12-15 04:52:35 所属栏目:百科 来源:网络整理
导读:??????? 1:???? 正确的创建集成了BlazeDS的的flex项目(网上资料很多,这里不作介绍) ??????? ???????? 2:? 添加spring的的依赖和spring的核心配置文件 ???????? 3:? 通常我们的服务都是由spring容器来管理,所以这里需要告诉BlazeDS通过Factory来查找指定



??????? 1:???? 正确的创建集成了BlazeDS的的flex项目(网上资料很多,这里不作介绍)

???????

???????? 2:? 添加spring的的依赖和spring的核心配置文件


???????? 3:? 通常我们的服务都是由spring容器来管理,所以这里需要告诉BlazeDS通过Factory来查找指定的服务对象

???????????????? 这里需要创建flex的工厂类来查找服务对象:

??????????

public  class SpringFactoryInstance extends FactoryInstance {

    private Log log = LogFactory.getLog(getClass());

    SpringFactoryInstance(FlexFactory factory,String id,ConfigMap properties) {
        super(factory,id,properties);
    }

    public Object lookup() {
        ApplicationContext appContext = WebApplicationContextUtils.
                getRequiredWebApplicationContext(
                    FlexContext.getServletConfig().getServletContext()
        );
        String beanName = getSource();
        try {
            log.info("Lookup bean from Spring ApplicationContext: " + beanName);
            return appContext.getBean(beanName);
        }
        catch (NoSuchBeanDefinitionException nex) {
            ...
        }
        catch (BeansException bex) {
            ...
        }
        catch (Exception ex) {
            ...
        }
    }
}

public class FlexFactoryImpl implements FlexFactory {

    private Log log = LogFactory.getLog(getClass());

    public FactoryInstance createFactoryInstance(String id,ConfigMap properties) {
        log.info("Create FactoryInstance.");
        SpringFactoryInstance instance = new SpringFactoryInstance(this,properties);
        instance.setSource(properties.getPropertyAsString(SOURCE,instance.getId()));
        return instance;
    }

    public Object lookup(FactoryInstance instanceInfo) {
        log.info("Lookup service object.");
        return instanceInfo.lookup();
    }

    public void initialize(String id,ConfigMap configMap) {
    }
}

??????????? ????? 4:? 在services-config.xml文件中配置如下flex工厂: ????? <factories> ???????? <factory id="flexFactory" class="com.note.FlexFactoryImpl"/> ????? </factories> ????? 5: 以上所有的步骤都是通用步骤,现在我们就针对具体的一个例子进一步说明,接下来创建自己的服务对象,比如:我这里是首先创建notebookService ????? 接口, 根据需求定义自己的方法,然后编写该接口的实现类:notebookServiceImpl ???? ? ????? 6:? 然后在spring的核心配置文件中进行配置,将该服务纳入到spring的管理容器中: ??????? <bean id="notebookService" class="com.note.service.notebookServiceImpl"></bean> ???? ? ????? 7: 然后在remoting-config.xml文件中配置如下: ?????? <destination id="noteService"> ?????? <properties> ??????? <factory>flexFactory</factory><!--此处的factory的值与第四步骤中的id值保持一致--> ??????? <source>notebookService</source><!--此处的source值与spring配置文件中的bean的id值保持一致--> ??????? <scope>application</scope> ?????? </properties>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读