最近在学习一个国产的Ajax开源框架Buffalo,Buffalo是burlap协议的JavaScript实现,但是它为Amowa(面向异步消息的Web应用)/Ajax提供了更多的支持。开发者可以使用Buffalo为web应用更加容易的添加Amowa/Ajax特性;另外,随着开发者的要求,Buffalo开始逐渐加入了Web元素,使得Buffalo逐渐向一个全功能的、新型的Web框架逐渐靠近。目前Buffalo已经发布了2.0版本。
Spring是当前最流行的轻量级容器,Buffalo对它进行了支持。Spring中任意一个配置过的bean, 都可以通过简单的配置被暴露为buffalo服务。 以下简单介绍下Buffalo2.0集成Spring的配置。
1. web.xml配置:
<display-name>
Buffalo Web Remoting Demostration Application
</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<servlet>
<servlet-name>bfapp</servlet-name>
<servlet-class>
net.buffalo.web.servlet.ApplicationServlet
</servlet-class>
</servlet>
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>bfapp</servlet-name>
<url-pattern>/bfapp/*</url-pattern>
</servlet-mapping>
2. Spring的applicationContext.xml配置:
<bean id=" yourService "
class="xxx.service.yourService "></bean>
<bean name="buffaloConfigBean"
class="net.buffalo.service.BuffaloServiceConfigurer">
<property name="services">
<map>
<entry key="yourService">
<ref bean=" yourService " />
</entry>
<!-- oterh entries... -->
</map>
</property>
</bean>
通过以上配置后,开发者不用再配置buffalo-service.properties文件了,使用applicationContext.xml替代之.其中引用到的bean可以是任意被Spring托管的bean。在web页面的调用却不需要做什么改变。如:
<script language="javascript" src="js/prototype.js"></script>
<script language="javascript" src="js/buffalo.js"></script>
<script type="text/javascript">
var END_POINT="<%=request.getContextPath()%>/bfapp";
var buffalo = new Buffalo(END_POINT);
function xxx(){
buffalo.remoteCall("yourService. method", [], function(reply) {
alert(reply.getResult());
})
}
</script>.