BlazeDS+spring整合到J2EE应用的最佳实践
??????? 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> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |