`
非飞
  • 浏览: 80302 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Guice与DWR集成

    博客分类:
  • Java
阅读更多

Tim因为其实现了guice与dwr的集成,已经被列入dwr的contributor行列,Tim在自己的blog上也谈到了如何实现guice与dwr的集成,不过说的比较粗略。下面我们来看看如何实现guice与dwr的集成。

资源下载

  1. 下载最新的DWR 2.0 RC4a,地址:https://dwr.dev.java.net/files/documents/2427/55209/dwr.jar
  2. 下载Guice 1.0,地址:http://google-guice.googlecode.com/files/guice-1.0.zip


定义服务

java 代码
 
  1. public interface HelloService {  
  2.     String sayHello(String name);  

java 代码
 
  1. public class DefaultHelloService implements HelloService {  
  2.     public String sayHello(String name) {  
  3.         return "Hello, " +name;  
  4.     }  
  5. }  


实现dwr的Listener

java 代码
  1. public class DwrContextListener extends DwrGuiceServletContextListener {    
  2.     @Override    
  3.     protected void configure() {    
  4.         // 在这里可以安装其他的guice模块    
  5.         // install(new TempModule());    
  6.         // 绑定服务    
  7.         bindRemotedAs("HelloService", HelloService.class).to(DefaultHelloService.class).in(Scopes.SINGLETON);    
  8.     }    
  9. }    


配置DWR

xml 代码
  1.        <listener>  
  2.     <listener-class>  
  3.     temp.DwrContextListener  
  4.         <!---->listener-class>  
  5. <!---->listener>  
  6. <servlet>  
  7.     <servlet-name>dwr-invoker<!---->servlet-name>  
  8.     <display-name>DWR Servlet<!---->display-name>  
  9.     <description>Direct Web Remoter Servlet<!---->description>  
  10.     <servlet-class>org.directwebremoting.guice.DwrGuiceServlet<!---->servlet-class>  
  11.     <init-param>  
  12.         <param-name>debug<!---->param-name>  
  13.         <param-value>true<!---->param-value>  
  14.     <!---->init-param>  
  15.     <init-param>  
  16.         <param-name>activeReverseAjaxEnabled<!---->param-name>  
  17.         <param-value>true<!---->param-value>  
  18.     <!---->init-param>  
  19.     <load-on-startup>1<!---->load-on-startup>  
  20. <!---->servlet>  
  21.   
  22. <servlet-mapping>  
  23.     <servlet-name>dwr-invoker<!---->servlet-name>  
  24.     <url-pattern>/dwr/*<!---->url-pattern>  
  25. <!---->servlet-mapping>  


至此,已经完成了guice与dwr的集成。启动web服务,在浏览器中输入:http://localhost:{port}/{context}/dwr,便可以看到所发布的HelloService服务。

重大改进

dwr在与guice集成之后有了突出的功能性改进,以往如果想要发布远程对象,需要使用具体类来实现,不可以使用接口,这使得发布的对象暴露过多的内部信息,虽然可以通过在dwr.xml中显示的定义哪些方法和属性需要发布,哪些不用,但是这样也加大了对发布的远程对象的维护和管理难度。借助guice,DWR 2.0RCa目前可以以发布接口的方式来发布远程对象。

分享到:
评论

相关推荐

    Google Guice与MyBatis集成,并实现发送邮件轮询

    Google Guice与MyBatis集成,支持注解事务,简单的无法想象; Mybatis与mysql集成;实现发送邮件轮询; 源码是个web项目,里面有数据库的脚本,使用tomcat,导入eclipse,部署启动tomcat,轮询即会启动 使用 ...

    shiro,guice集成

    ### Apache Shiro 与 Guice 集成详解 #### 概述 在现代软件开发过程中,集成不同的框架和技术是常见的需求。Apache Shiro 是一个强大的、易用的 Java 安全框架,提供了认证、授权、加密和会话管理功能。而 Google ...

    Guice与Spring框架的区别.pdf

    Guice与Spring框架的区别 Guice与Spring框架都是依赖注入(Dependency Injection,DI)容器,它们的主要作用是将对象之间的依赖关系解耦,使得系统更加灵活、可维护和可扩展。下面我们来讨论Guice和Spring框架的...

    guice集成jpa

    这样,我们就成功地将Guice与JPA和Hibernate集成在一起,可以方便地在Java应用中执行数据持久化操作。通过依赖注入,我们可以轻松地在不同组件之间共享`EntityManager`实例,同时保持代码的整洁和可测试性。对于更...

    DI容器框架Google Guice与Spring框架的区别

    "DI容器框架Google Guice与Spring框架的区别" 这个标题表明我们要探讨的是两种不同的依赖注入(Dependency Injection,简称DI)容器——Google Guice和Spring框架之间的差异。DI是一种设计模式,它帮助开发者在对象...

    jersey2.15集成guice笔记

    以上就是关于jersey2.15与guice集成的基本知识,通过这种集成,我们可以充分利用两者的优势,实现更高效、更易于管理和测试的RESTful服务。在实际项目中,可以根据需求进一步探索和定制化,例如使用AOP、拦截器等...

    shiro和guice整合,使用权限注解

    Guice 作为一个轻量级的 AOP 框架,提供了模块化和动态绑定的能力,能够无缝地与 Shiro 集成。与 Spring AOP 相比,Guice 更为简单,启动速度更快,这得益于它的设计哲学:避免不必要的复杂性。Guice 提供了 `...

    guicejpa:Jpa2 与 Guice 集成,为类路径中的每个实体自动连接通用 DAO

    当前特点: 与 Guice 集成,为所有 @Entity 类提供 Typed Daos 的绑定。 #用法您可以签出 repo 并执行 mvn clean 包。 检查测试用例以了解功能。 可以使用持久性单元名称、属性对象、布尔标志来实例化模块以启动 ...

    guice.jar/guice.jar

    guice.jar guice.jar guice.jar guice.jar guice.jar guice.jar guice.jar

    guice-3.0.rar

    Guice-3.0是Guice的一个版本,包含了核心库guice-3.0.jar,以及与Spring和Struts2集成的扩展库guice-spring-3.0.jar和guice-struts2-plugin-3.0.jar。 1. **Guice核心概念**: - **依赖注入**:Guice的核心机制,...

    Struts2的第一个入门实例(三)--Struts2与Guice整合

    总的来说,这个实例提供了Struts2与Guice集成的基本概念和实践步骤。通过学习和实践这个实例,开发者能够更好地理解如何在实际项目中利用这两个强大的框架,提升Java Web应用的开发效率和质量。

    play-guice-mybatis:play 框架 guice mybatis 集成

    在Play框架中集成Guice,可以使用Play的Guice模块,这样就能将Guice的依赖注入功能与Play的路由和控制器相结合。 接下来,我们谈谈MyBatis。MyBatis允许开发者编写SQL语句,将它们与Java代码分离,减少了对JDBC的...

    DWR2学习整理资料

    与Struts集成则可以方便地将DWR的功能融入MVC架构中,提高应用的交互性和用户体验。 总的来说,DWR为开发者提供了一种强大的工具,使得在JavaScript和Java之间建立通信变得更加简单,极大地促进了动态Web应用的开发...

    Google Guice: Agile Lightweight Dependency Injection Framework

    - **Web开发**:通过集成Guice,可以方便地管理Web应用中的依赖关系。 - **单元测试**:利用Guice可以轻松地模拟依赖对象,提高单元测试的质量。 - **企业级应用**:适用于构建大型、复杂的业务系统。 #### 七、...

    初试Guice(转)

    在阅读《初试Guice》这篇博客文章时,你可能会学习到如何设置Guice模块,如何声明和注入依赖,以及如何在项目中集成和使用Guice。作者可能会分享一些最佳实践和常见陷阱,帮助读者更好地理解和应用Guice。此外,文章...

    Guice用户中文指南

    3. **可扩展性**:支持自定义绑定和拦截器,方便集成其他框架或库。 4. **灵活性**:Guice允许在运行时动态地配置依赖关系。 5. **强大的社区支持**:由于其开源特性,Guice拥有一个活跃的社区,提供了丰富的资源和...

    guice超轻量级依赖注入

    9. **测试支持**:Guice与JUnit和其他测试框架很好地集成,使单元测试变得简单。我们可以使用`Injector`创建测试环境,确保每个测试用例都有独立的依赖实例。 10. **轻量级**:Guice相比于Spring等大型框架,体积...

    Google Guice需要的jar

    此外,Guice与其它Google库如Guava的集成也非常紧密,能够更好地支持复杂的应用场景。 在测试方面,Guice提供了一套强大的测试工具,如`Injector.createInjector()`和`Injector.getInstance()`,可以帮助开发者轻松...

    mybatis-guice

    MyBatis-Guice 是一个将 MyBatis ORM 框架与 Google Guice 依赖注入框架整合的项目。在 Java 开发中,MyBatis 用于处理 SQL 操作,而 Guice 则用于管理对象的生命周期和依赖关系。这个项目提供了一个示例,展示如何...

Global site tag (gtag.js) - Google Analytics