### DWR与Spring框架整合详解 #### 一、引言 Direct Web Remoting(DWR)是一种用于在浏览器端和服务器端之间进行直接调用的技术,它使得JavaScript能够像调用本地函数一样调用服务器端的Java方法。而Spring框架是Java平台下最流行的开源框架之一,提供了一种优雅的方式来管理应用程序中的依赖关系。将DWR与Spring框架整合,可以实现更加灵活高效的服务端交互,简化开发流程,提高代码的可维护性和扩展性。 #### 二、DWR与Spring整合配置 在进行DWR与Spring的整合时,首先需要在DWR的配置文件dwr.xml中指定创建对象的方式和参数。以下是一个示例: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD DirectWebRemoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd"> <dwr> <allow> <create javascript="DWRUser" creator="spring"> <param name="beanName" value="userBiz"></param> <include method="loadById"/> </create> </allow> </dwr> ``` 这里的`<create>`标签指定了一个名为`DWRUser`的JavaScript对象,该对象将由Spring容器来创建。`<param>`标签中的`beanName`参数指定了在Spring的配置文件(如applicationContext.xml)中定义的bean的名字,即`userBiz`。这表明DWR在需要实例化`DWRUser`对象时,会从Spring容器中获取名为`userBiz`的bean实例。 #### 三、Spring配置与业务逻辑处理 在Spring的配置文件中,需要定义`userBiz`这个bean,并注入其依赖项,例如`userDAO`: ```xml <bean id="userBiz" class="com.shaccp.biz.UserBizImpl"> <property name="userDAO" ref="userDAO"></property> </bean> ``` `UserBizImpl`类实现了业务逻辑接口`UserBiz`,并通过setter方法注入了`userDAO`: ```java public class UserBizImpl implements UserBiz { private UserDAO userDAO; public void setUserDAO(UserDAO userDAO) { this.userDAO = userDAO; } // ... 其他业务逻辑方法 ... } ``` #### 四、前端页面集成DWR 在前端页面中,需要引入DWR生成的JavaScript文件,以便在客户端调用服务端的方法: ```html <script type='text/javascript' src='/userssh/dwr/interface/DWRUser.js'></script> <script type='text/javascript' src='/userssh/dwr/engine.js'></script> <script type='text/javascript' src='/userssh/dwr/util.js'></script> ``` 其中,`DWRUser.js`是DWR自动生成的文件,包含了客户端调用服务端方法的JavaScript代码。`engine.js`和`util.js`则提供了DWR的核心功能和辅助工具。 #### 五、总结 DWR与Spring的整合,通过Spring管理业务对象的生命周期,利用DWR提供透明的远程调用能力,大大简化了前后端之间的交互过程,提高了开发效率和代码的可维护性。在实际应用中,这种整合方式广泛应用于需要实时数据更新和复杂业务逻辑处理的场景中,如即时通讯、在线协作编辑等。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">
<dwr>
<allow>
<create javascript="DWRUser" creator="spring">
<param name="beanName" value="userBiz"></param>
<include method="loadById"/><!--需要对外暴露的方法-->
</create>
</allow>
</dwr>
creator属性的值可以是new,struts,spring...... spring类型允许你通过spring来创建实例.因为此处是整合spring来做的,所以设置成“spring”,javascript="DWRUser" 表示实例转换成javascript语言后以DWRUser来命名,前台页面可以通过代码(<script type='text/javascript' src='../../dwr/interface/DWRUser.js'></script>)来调用。param元素的name属性值可以是class,beanName等,此处用beanName,value的值是定义在applicationContext.xml中某个bean的id值。
<bean id="userBiz" class="com.shaccp.biz.UserBizImpl">
<property name="userDAO" ref="userDAO"></property>
</bean>
2 实体类 userDAO是spring注入进来
- 粉丝: 13
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 阿里云OSS Java版SDK.zip
- 阿里云api网关请求签名示例(java实现).zip
- 通过示例学习 Android 的 RxJava.zip
- 通过多线程编程在 Java 中发现并发模式和特性 线程、锁、原子等等 .zip
- 通过在终端中进行探索来学习 JavaScript .zip
- 通过不仅针对初学者而且针对 JavaScript 爱好者(无论他们的专业水平如何)设计的编码挑战,自然而自信地拥抱 JavaScript .zip
- 适用于 Kotlin 和 Java 的现代 JSON 库 .zip
- yolo5实战-yolo资源
- english-chinese-dictionary-数据结构课程设计
- mp-mysql-injector-spring-boot-starter-sql注入