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() {
-
-
-
- bindRemotedAs("HelloService", HelloService.class).to(DefaultHelloService.class).in(Scopes.SINGLETON);
- }
- }
配置DWR
xml 代码
- <listener>
- <listener-class>
- temp.DwrContextListener
- <!---->listener-class>
- <!---->listener>
- <servlet>
- <servlet-name>dwr-invoker<!---->servlet-name>
- <display-name>DWR Servlet<!---->display-name>
- <description>Direct Web Remoter Servlet<!---->description>
- <servlet-class>org.directwebremoting.guice.DwrGuiceServlet<!---->servlet-class>
- <init-param>
- <param-name>debug<!---->param-name>
- <param-value>true<!---->param-value>
- <!---->init-param>
- <init-param>
- <param-name>activeReverseAjaxEnabled<!---->param-name>
- <param-value>true<!---->param-value>
- <!---->init-param>
- <load-on-startup>1<!---->load-on-startup>
- <!---->servlet>
-
- <servlet-mapping>
- <servlet-name>dwr-invoker<!---->servlet-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目前可以以发布接口的方式来发布远程对象。
分享到:
- 2007-04-20 16:16
- 浏览 1665
- 评论(0)
- 论坛回复 / 浏览 (0 / 2385)
- 查看更多
相关推荐
Google Guice与MyBatis集成,支持注解事务,简单的无法想象; Mybatis与mysql集成;实现发送邮件轮询; 源码是个web项目,里面有数据库的脚本,使用tomcat,导入eclipse,部署启动tomcat,轮询即会启动 使用 ...
### Apache Shiro 与 Guice 集成详解 #### 概述 在现代软件开发过程中,集成不同的框架和技术是常见的需求。Apache Shiro 是一个强大的、易用的 Java 安全框架,提供了认证、授权、加密和会话管理功能。而 Google ...
Guice与Spring框架的区别 Guice与Spring框架都是依赖注入(Dependency Injection,DI)容器,它们的主要作用是将对象之间的依赖关系解耦,使得系统更加灵活、可维护和可扩展。下面我们来讨论Guice和Spring框架的...
这样,我们就成功地将Guice与JPA和Hibernate集成在一起,可以方便地在Java应用中执行数据持久化操作。通过依赖注入,我们可以轻松地在不同组件之间共享`EntityManager`实例,同时保持代码的整洁和可测试性。对于更...
"DI容器框架Google Guice与Spring框架的区别" 这个标题表明我们要探讨的是两种不同的依赖注入(Dependency Injection,简称DI)容器——Google Guice和Spring框架之间的差异。DI是一种设计模式,它帮助开发者在对象...
以上就是关于jersey2.15与guice集成的基本知识,通过这种集成,我们可以充分利用两者的优势,实现更高效、更易于管理和测试的RESTful服务。在实际项目中,可以根据需求进一步探索和定制化,例如使用AOP、拦截器等...
Guice 作为一个轻量级的 AOP 框架,提供了模块化和动态绑定的能力,能够无缝地与 Shiro 集成。与 Spring AOP 相比,Guice 更为简单,启动速度更快,这得益于它的设计哲学:避免不必要的复杂性。Guice 提供了 `...
当前特点: 与 Guice 集成,为所有 @Entity 类提供 Typed Daos 的绑定。 #用法您可以签出 repo 并执行 mvn clean 包。 检查测试用例以了解功能。 可以使用持久性单元名称、属性对象、布尔标志来实例化模块以启动 ...
guice.jar guice.jar guice.jar guice.jar guice.jar guice.jar guice.jar
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与Guice集成的基本概念和实践步骤。通过学习和实践这个实例,开发者能够更好地理解如何在实际项目中利用这两个强大的框架,提升Java Web应用的开发效率和质量。
在Play框架中集成Guice,可以使用Play的Guice模块,这样就能将Guice的依赖注入功能与Play的路由和控制器相结合。 接下来,我们谈谈MyBatis。MyBatis允许开发者编写SQL语句,将它们与Java代码分离,减少了对JDBC的...
与Struts集成则可以方便地将DWR的功能融入MVC架构中,提高应用的交互性和用户体验。 总的来说,DWR为开发者提供了一种强大的工具,使得在JavaScript和Java之间建立通信变得更加简单,极大地促进了动态Web应用的开发...
- **Web开发**:通过集成Guice,可以方便地管理Web应用中的依赖关系。 - **单元测试**:利用Guice可以轻松地模拟依赖对象,提高单元测试的质量。 - **企业级应用**:适用于构建大型、复杂的业务系统。 #### 七、...
在阅读《初试Guice》这篇博客文章时,你可能会学习到如何设置Guice模块,如何声明和注入依赖,以及如何在项目中集成和使用Guice。作者可能会分享一些最佳实践和常见陷阱,帮助读者更好地理解和应用Guice。此外,文章...
3. **可扩展性**:支持自定义绑定和拦截器,方便集成其他框架或库。 4. **灵活性**:Guice允许在运行时动态地配置依赖关系。 5. **强大的社区支持**:由于其开源特性,Guice拥有一个活跃的社区,提供了丰富的资源和...
9. **测试支持**:Guice与JUnit和其他测试框架很好地集成,使单元测试变得简单。我们可以使用`Injector`创建测试环境,确保每个测试用例都有独立的依赖实例。 10. **轻量级**:Guice相比于Spring等大型框架,体积...
此外,Guice与其它Google库如Guava的集成也非常紧密,能够更好地支持复杂的应用场景。 在测试方面,Guice提供了一套强大的测试工具,如`Injector.createInjector()`和`Injector.getInstance()`,可以帮助开发者轻松...
MyBatis-Guice 是一个将 MyBatis ORM 框架与 Google Guice 依赖注入框架整合的项目。在 Java 开发中,MyBatis 用于处理 SQL 操作,而 Guice 则用于管理对象的生命周期和依赖关系。这个项目提供了一个示例,展示如何...