Guice与DWR集成
上一篇 /
下一篇 2008-03-26 02:38:38
/ 个人分类:Guice
更多相关推荐 Tim因为其实现了guice与dwr的集成,已经被列入dwr的contributor行列,Tim在自己的blog上也谈到了如何实现guice与dwr的集成,不过说的比较粗略。下面我们来看看如何实现guice与dwr的集成。
资源下载
下载最新的DWR 2.0 RC4a,地址:https://dwr.dev.java.net/files/documents/2427/55209/dwr.jar
下载Guice 1.0,地址:http://google-guice.googlecode.com/files/guice-1.0.zip
定义服务
java 代码
public interface HelloService {
String sayHello(String name);
}
java 代码
public class DefaultHelloService implements HelloService {
public String sayHello(String name) {
return "Hello, " +name;
}
}
实现dwr的Listener
java 代码
public class DwrContextListener extends DwrGuiceServletContextListener {
@Override
protected void configure() {
// 在这里可以安装其他的guice模块
// install(new TempModule());
// 绑定服务
bindRemotedAs("HelloService", HelloService.class).to(DefaultHelloService.class).in(Scopes.SINGLETON);
}
}
配置DWR
xml 代码
<listener>
<listener-class>
temp.DwrContextListener
listener-class>
listener>
<servlet>
<servlet-name>dwr-invokerservlet-name>
<display-name>DWR Servletdisplay-name>
<description>Direct Web Remoter Servletdescription>
<servlet-class>org.directwebremoting.guice.DwrGuiceServletservlet-class>
<init-param>
<param-name>debugparam-name>
<param-value>trueparam-value>
init-param>
<init-param>
<param-name>activeReverseAjaxEnabledparam-name>
<param-value>trueparam-value>
init-param>
<load-on-startup>1load-on-startup>
servlet>
<servlet-mapping>
<servlet-name>dwr-invokerservlet-name>
<url-pattern>/dwr/*url-pattern>
servlet-mapping>
至此,已经完成了guice与dwr的集成。启动web服务,在浏览器中输入:http://localhost:{port}/{context}/dwr,便可以看到所发布的HelloService服务。
重大改进
dwr在与guice集成之后有了突出的功能性改进,以往如果想要发布远程对象,需要使用具体类来实现,不可以使用接口,这使得发布的对象暴露过多的内部信息,虽然可以通过在dwr.xml中显示的定义哪些方法和属性需要发布,哪些不用,但是这样也加大了对发布的远程对象的维护和管理难度。借助guice,DWR 2.0RCa目前可以以发布接口的方式来发布远程对象。
导入论坛
引用链接
收藏
分享给好友
推荐到圈子
管理
举报
TAG: