`
edzhh
  • 浏览: 66619 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

[转]Dwr整合spring

阅读更多
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
JavaMonitor相应的变成了:
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

    **DWR整合Spring MVC**是将Direct Web Remoting (DWR)框架与Spring MVC结合使用,以实现前端JSP页面直接调用后端Java方法的功能。这种整合方式极大地提高了Web应用的交互性和实时性,降低了数据传输的复杂性。本文将...

    DWR与SPRING,DWR与STRUTS2的整合

    提供的文档“dwr与spring.doc”和“dwr与struts2.doc”可能详细阐述了整合过程和最佳实践,而“一个小例子.txt”可能包含了一个实际整合示例,帮助读者更好地理解整合步骤和实现方式。学习并掌握这些知识对于提升...

    dwr与spring整合

    **DWR(Direct Web Remoting)与Spring框架的整合** DWR是一款开源的Java库,它允许在浏览器和服务器之间进行动态、实时的双向通信,实现了JavaScript与Java之间的远程调用。Spring则是一个广泛使用的Java企业级...

    疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发(part01)

    《疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发》是《基于J2EE的Ajax宝典》的第二版。《基于J2EE的Ajax宝典》面市近2年,作为Ajax领域最全面、实用的图书,一直深受读者的好评。全书主要分为三个...

    dwr整合spring解释说明

    在本文中,我们将深入探讨如何将Direct Web Remoting (DWR) 整合到Spring框架中,以便在Web应用中实现远程方法调用(RMI)。DWR允许JavaScript与Java后端进行通信,使得在不刷新页面的情况下更新前端数据成为可能。...

    DWR与SPRING 集成

    在这个项目中,你可以找到如何将DWR与Spring MVC整合的代码实例,包括控制器定义、DWR配置、前端页面和JavaScript调用等。 6. **实战演练**: 为了更好地理解DWR和Spring的集成,可以下载 `spring-mvc-showcase-...

    dwr+spring 注解方式

    将DWR与Spring整合,可以利用Spring的强大功能来管理和配置DWR组件,同时保持前后端交互的高效性。 在使用DWR和Spring结合时,注解方式的引入极大地简化了配置过程。下面将详细介绍如何通过注解实现DWR和Spring的...

    dwr2.0 spring 3.0 整合示例

    整合DWR和Spring的主要目标是利用Spring的管理能力来处理DWR的bean,同时利用DWR的动态JavaScript生成能力来简化客户端的Ajax调用。 1. **DWR的配置**: - 在DWR 2.0中,我们需要在Web应用的`WEB-INF/dwr.xml`配置...

    dwr整合spring

    **DWR整合Spring详解** Direct Web Remoting (DWR) 是一种JavaScript库,它使得Java对象可以在Web浏览器中直接调用,从而实现富客户端(Rich Internet Applications,RIA)的开发。Spring框架则是一个广泛使用的...

    ajax dwr+spring整合

    Spring还通过Spring MVC和Spring Web Flow支持Web应用的开发,与DWR整合可以实现更高效、更灵活的前端与后端交互。 **三、DWR与Spring整合** 1. **配置DWR** 在Spring项目中使用DWR,首先需要在`web.xml`中配置DWR...

    dwr和spring和struts2整合

    4. **整合DWR和Spring**:为了让DWR能够找到Spring管理的Bean,需要配置DWR-Spring集成。这可以通过在dwr.xml中添加`&lt;dwr:annotation-config&gt;`标签,以及在web.xml中配置DWR的Spring监听器来实现。 5. **编写前端...

    dwr+spring+hibernate模板.zip

    《DWR+Spring+Hibernate整合应用详解》 在IT领域,DWR(Direct Web Remoting)、Spring和Hibernate是三个至关重要的技术组件,它们分别在Web应用程序的远程调用、依赖注入和对象关系映射方面发挥着核心作用。将这三...

    DWR+SPRING整合

    ### DWR与Spring框架整合详解 #### 一、引言 Direct Web Remoting(DWR)是一种用于在浏览器端和服务器端之间进行直接调用的技术,它使得JavaScript能够像调用本地函数一样调用服务器端的Java方法。而Spring框架是...

    使用dwr+spring实现消息推送

    在本教程中,我们将探讨如何利用Direct Web Remoting (DWR) 和Spring框架来实现这样的功能。 DWR是一个开源Java库,它允许Web应用程序在浏览器和服务器之间进行实时的、异步的通信,类似于Ajax的功能,但更加强大。...

    DWR结合spring例子(可用)

    这个例子对于初学者来说非常有价值,因为它展示了DWR如何简化前后端通信,以及如何在Spring环境中整合DWR。通过实践这个示例,你可以更好地理解DWR的工作原理,以及如何在实际项目中利用它提高Web应用的性能和用户...

    DWR2.0 整合Spring2.0

    在DWR2.0中,整合Spring2.0主要涉及以下几个方面: 1. **依赖注入(Dependency Injection, DI)**:Spring框架的核心特性之一就是DI,它可以将对象的依赖关系解耦,使得代码更加灵活和可测试。通过Spring的...

    dwr+spring实例

    要将DWR与Spring整合,我们通常会使用Spring的`DwrController`或者自定义一个Spring MVC控制器来处理DWR请求。此外,我们还需要在Spring的配置文件中声明DWR的相关bean,如`DwrConfig`,并将其与其他Spring服务(如...

    DWR+Spring整合案例

    **DWR (Direct Web Remoting) 与 Spring 整合详解** DWR 是一个 Java 开发框架,允许在浏览器和服务器之间进行实时的 AJAX(Asynchronous JavaScript and XML)通信,使得用户界面能够与后端服务进行异步交互,提供...

Global site tag (gtag.js) - Google Analytics