dwr3.0与Spring mvc的全注解集成方法

用上面的方法集成虽然可行,但是比较麻烦,需要定义dwrServlet以及把要注册的类写到web.xml中,而且实际应用中会出现注册的远程类里Autowired的bean不能实例化的问题。dwr3.0可以通过全注解的方式,极大的简化了配置,所有xml配置加在一起不超过20行,而且使用更加简单,bean注入的问题也都解决。配置步骤如下:

  1. web.xml的配置文件中,在默认的DispatcherServlet的mapping里加上dwr 

    < servlet >
             < servlet-name >appServlet</ servlet-name >
             < servlet-class >org.springframework.web.servlet.DispatcherServlet</ servlet-class >
             < init-param >
                 < param-name >contextConfigLocation</ param-name >
                 < param-value >/WEB-INF/spring/appServlet/appServlet-context.xml</ param-value >
             </ init-param >
             < load-on-startup >1</ load-on-startup >
         </ servlet >
         < servlet-mapping >
             < servlet-name >appServlet</ servlet-name >
             < url-pattern >/</ url-pattern >
         </ servlet-mapping >
         
         < servlet-mapping >
             < servlet-name >appServlet</ servlet-name >
             < url-pattern >/dwr/*</ url-pattern >
         </ servlet-mapping >
  2. dispatcherServlet的配置文件appServlet-context.xml

     

    <? xml version = "1.0" encoding = "UTF-8" ?>
    < beans:beans xmlns = "<a href="http://www.springframework.org/schema/mvc" "="" style="outline: none; color: rgb(0, 109, 175); border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-left-radius: 0px !important; background-image: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.2em !important; margin: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important;">http://www.springframework.org/schema/mvc"
         xmlns:xsi = "<a href="http://www.w3.org/2001/XMLSchema-instance" "="" style="outline: none; color: rgb(0, 109, 175); border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-left-radius: 0px !important; background-image: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.2em !important; margin: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important;">http://www.w3.org/2001/XMLSchema-instance" xmlns:beans = "<a href="http://www.springframework.org/schema/beans" "="" style="outline: none; color: rgb(0, 109, 175); border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-left-radius: 0px !important; background-image: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.2em !important; margin: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important;">http://www.springframework.org/schema/beans"
         xmlns:context = "<a href="http://www.springframework.org/schema/context" "="" style="outline: none; color: rgb(0, 109, 175); border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-left-radius: 0px !important; background-image: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.2em !important; margin: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important;">http://www.springframework.org/schema/context"
         xmlns:dwr = "<a href="http://www.directwebremoting.org/schema/spring-dwr" "="" style="outline: none; color: rgb(0, 109, 175); border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-left-radius: 0px !important; background-image: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.2em !important; margin: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important;">http://www.directwebremoting.org/schema/spring-dwr"
             http://www.directwebremoting.org/schema/spring-dwr <a href="http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd" "="" style="outline: none; color: rgb(0, 109, 175); border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-left-radius: 0px !important; background-image: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.2em !important; margin: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-size: 1em !important; min-height: auto !important;">http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd">
         <!-- DispatcherServlet Context: defines this servlet's request-processing
             infrastructure -->
         <!-- Enables the Spring MVC @Controller programming model -->
         < annotation-driven />
         <!-- Handles HTTP GET requests for /resources/** by efficiently serving
             up static resources in the ${webappRoot}/resources directory -->
         < resources mapping = "/resources/**" location = "/resources/" />
         < interceptors >
             < beans:bean class = "com.panguso.op.data.manager.interceptor.LogInterceptor" ></ beans:bean >
         </ interceptors >
         <!-- Resolves views selected for rendering by @Controllers to .jsp resources
             in the /WEB-INF/views directory -->
         < beans:bean
             class = "org.springframework.web.servlet.view.InternalResourceViewResolver" >
             < beans:property name = "prefix" value = "/WEB-INF/views/" />
             < beans:property name = "suffix" value = ".jsp" />
         </ beans:bean >
         <!--<view-controller path="/" view-name="index" /> -->
         < context:component-scan base-package = "com.panguso.op.data.manager" />
     
         <!-- 从这行往下是要添加的 -->
         < context:annotation-config />
         < dwr:configuration />
         < dwr:annotation-config />
         < dwr:url-mapping />
         < dwr:controller id = "dwrController" debug = "true" >
             < dwr:config-param name = "allowScriptTagRemoting"
                 value = "true" />
             < dwr:config-param name = "crossDomainSessionSecurity"
                 value = "false" />
         </ dwr:controller >
         < beans:bean
             class = "org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" >
             < beans:property name = "order" value = "1" />
         </ beans:bean >
         < beans:bean
             class = "org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" >
             < beans:property name = "order" value = "2" />
         </ beans:bean >
         < beans:bean
             class = "org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" >
             < beans:property name = "order" value = "3" />
             < beans:property value = "true" name = "alwaysUseFullPath" />
             < beans:property name = "mappings" >
                 < beans:props >
                     < beans:prop key = "/dwr/**" >dwrController</ beans:prop >
                 </ beans:props >
             </ beans:property >
         </ beans:bean >
         <!--添加结束-->
    </ beans:beans >
  3. 配置完毕,使用的方法和上文类似,注意的是@RemoteProxy标注的远程类一定要加上name属性,不然启动会报错,如:

    @Service
    @RemoteProxy (name = "GeneralContentManagementService" )
    public class GeneralContentManagementService {
     
         @RemoteMethod
         public void aaa()
         {
         }
    }
【6层】一字型框架办公楼(含建筑结构图、计算书) 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值