Dwr整合spring
我在实战dwr那篇文章里面介绍了怎么调用服务器端的java类,这次我要把数据库的调用通过spring容器注入到这个类里面,然后用dwr来调用这个类里面的方法访从数据库中取得数据
首先,要保证hibernate所需的jar文件都齐全了
其次,写好你的spring-application.xml文件把里面的bean都配置好了。
介绍一下:
关于对数据库的调用,我的习惯是采用3层架构,即web,service,dao。Web层即表现层,就是最终调用层。Service层是业务逻辑层,可以对数据加工。Dao层是最终访问数据库层。Dao层我采用spring的事务代理器TransactionProxyFactoryBean代理;service我采用spring的普通的bean代理器ProxyFactoryBean代理;web层就是上面所说的那个java类,在这里,我也把它配置到spring容器里面了,作为一个spring的bean来使用。通过spring容器,我把dao层注入到service层,把service层注入到web层即那个java类,作为它的一个属性来使用。
我把实例写出来看看:
spring-application.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/VSPN18DATASOURCE</value>
</property>
</bean>
<bean id="dtatImportSessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="mappingResources">
<list> <value>com\vstsoft\dataimport\dto\Dealer.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">false</prop>
</props>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="dtatImportSessionFactory" />
</property>
</bean>
<bean id="impDealerDAO"
class="com.vstsoft.dataimport.dao.impl.DealerDAOImpl">
<property name="sessionFactory">
<ref local="dtatImportSessionFactory" />
</property>
</bean>
<bean id="dealerDAOProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="target">
<ref local="impDealerDAO" />
</property>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<bean id="dealerManage"
class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces">
<value>com.vstsoft.dataimport.service.DealerManage</value>
</property>
<property name="target">
<ref bean="dealerManageTarget" />
</property>
</bean>
<bean name="dealerManageTarget"
class="com.vstsoft.dataimport.service.impl.DealerManageTarget">
<property name="dealerDAO">
<ref bean="dealerDAOProxy" />
</property>
</bean>
<bean name="monitor" singleton="false"
class="com.vstsoft.dataimport.dto.Monitor">
<property name="dealerManage">
<ref bean="dealerManage" />
</property>
</bean>
</beans>
要注意的是这个bean”monitor”它就是最终调用即我们的那个调用类。我把它当作一个spring容器的bean来管理,并且把service层注入了它里面。
那,接下来,我们要修改dwr.xml了:
原来的配置
<create creator="new" javascript="DealerMonitor">
<param name="class"
value="com.vstsoft.dataimport.dto.Monitor" />
</create>
联手spring之后的配置
<create creator="spring" javascript="DealerMonitor">
<param name="beanName" value="monitor"></param>
<!-- 指定Spring配置文件的位置,如果没设置DWR会根据web.xml找到主配置文件,不过速度上就慢了
<param name="location" value="applicationContext.xml"></param>-->
</create>
这里的creater改成了spring,并且声明了要调用的spring容器中的bean
Java类Monitor相应的变成了:
package com.vstsoft.dataimport.dto;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.vstsoft.dataimport.service.DealerManage;
/**
* author:sunjianbin <br>
* email:volcano_hosan@sina.com
*/
public class Monitor {
private static Log log = LogFactory.getLog(Monitor.class);
private DealerManage dealerManage;
/**
* 从数据库中取得数据
*/
public List findDealers() {
if (dealerManage == null) {
log.info("dealerManage 没有注入");
}
List list = dealerManage.findDealers();
log.info("list size:" + list.size());
return list;
}
public DealerManage getDealerManage() {
return dealerManage;
}
public void setDealerManage(DealerManage dealerManage) {
this.dealerManage = dealerManage;
}
}
分享到:
相关推荐
**DWR整合Spring MVC**是将Direct Web Remoting (DWR)框架与Spring MVC结合使用,以实现前端JSP页面直接调用后端Java方法的功能。这种整合方式极大地提高了Web应用的交互性和实时性,降低了数据传输的复杂性。本文将...
提供的文档“dwr与spring.doc”和“dwr与struts2.doc”可能详细阐述了整合过程和最佳实践,而“一个小例子.txt”可能包含了一个实际整合示例,帮助读者更好地理解整合步骤和实现方式。学习并掌握这些知识对于提升...
**DWR(Direct Web Remoting)与Spring框架的整合** DWR是一款开源的Java库,它允许在浏览器和服务器之间进行动态、实时的双向通信,实现了JavaScript与Java之间的远程调用。Spring则是一个广泛使用的Java企业级...
《疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发》是《基于J2EE的Ajax宝典》的第二版。《基于J2EE的Ajax宝典》面市近2年,作为Ajax领域最全面、实用的图书,一直深受读者的好评。全书主要分为三个...
在本文中,我们将深入探讨如何将Direct Web Remoting (DWR) 整合到Spring框架中,以便在Web应用中实现远程方法调用(RMI)。DWR允许JavaScript与Java后端进行通信,使得在不刷新页面的情况下更新前端数据成为可能。...
在这个项目中,你可以找到如何将DWR与Spring MVC整合的代码实例,包括控制器定义、DWR配置、前端页面和JavaScript调用等。 6. **实战演练**: 为了更好地理解DWR和Spring的集成,可以下载 `spring-mvc-showcase-...
将DWR与Spring整合,可以利用Spring的强大功能来管理和配置DWR组件,同时保持前后端交互的高效性。 在使用DWR和Spring结合时,注解方式的引入极大地简化了配置过程。下面将详细介绍如何通过注解实现DWR和Spring的...
整合DWR和Spring的主要目标是利用Spring的管理能力来处理DWR的bean,同时利用DWR的动态JavaScript生成能力来简化客户端的Ajax调用。 1. **DWR的配置**: - 在DWR 2.0中,我们需要在Web应用的`WEB-INF/dwr.xml`配置...
**DWR整合Spring详解** Direct Web Remoting (DWR) 是一种JavaScript库,它使得Java对象可以在Web浏览器中直接调用,从而实现富客户端(Rich Internet Applications,RIA)的开发。Spring框架则是一个广泛使用的...
Spring还通过Spring MVC和Spring Web Flow支持Web应用的开发,与DWR整合可以实现更高效、更灵活的前端与后端交互。 **三、DWR与Spring整合** 1. **配置DWR** 在Spring项目中使用DWR,首先需要在`web.xml`中配置DWR...
4. **整合DWR和Spring**:为了让DWR能够找到Spring管理的Bean,需要配置DWR-Spring集成。这可以通过在dwr.xml中添加`<dwr:annotation-config>`标签,以及在web.xml中配置DWR的Spring监听器来实现。 5. **编写前端...
《DWR+Spring+Hibernate整合应用详解》 在IT领域,DWR(Direct Web Remoting)、Spring和Hibernate是三个至关重要的技术组件,它们分别在Web应用程序的远程调用、依赖注入和对象关系映射方面发挥着核心作用。将这三...
### DWR与Spring框架整合详解 #### 一、引言 Direct Web Remoting(DWR)是一种用于在浏览器端和服务器端之间进行直接调用的技术,它使得JavaScript能够像调用本地函数一样调用服务器端的Java方法。而Spring框架是...
在本教程中,我们将探讨如何利用Direct Web Remoting (DWR) 和Spring框架来实现这样的功能。 DWR是一个开源Java库,它允许Web应用程序在浏览器和服务器之间进行实时的、异步的通信,类似于Ajax的功能,但更加强大。...
这个例子对于初学者来说非常有价值,因为它展示了DWR如何简化前后端通信,以及如何在Spring环境中整合DWR。通过实践这个示例,你可以更好地理解DWR的工作原理,以及如何在实际项目中利用它提高Web应用的性能和用户...
在DWR2.0中,整合Spring2.0主要涉及以下几个方面: 1. **依赖注入(Dependency Injection, DI)**:Spring框架的核心特性之一就是DI,它可以将对象的依赖关系解耦,使得代码更加灵活和可测试。通过Spring的...
要将DWR与Spring整合,我们通常会使用Spring的`DwrController`或者自定义一个Spring MVC控制器来处理DWR请求。此外,我们还需要在Spring的配置文件中声明DWR的相关bean,如`DwrConfig`,并将其与其他Spring服务(如...
**DWR (Direct Web Remoting) 与 Spring 整合详解** DWR 是一个 Java 开发框架,允许在浏览器和服务器之间进行实时的 AJAX(Asynchronous JavaScript and XML)通信,使得用户界面能够与后端服务进行异步交互,提供...