Dwr3.0纯注解(纯Java Code配置)配置与应用浅析一之零配置文件化

Dwr3.0纯注解(纯Java Code配置)配置与应用浅析一之零配置文件化

什么是Dwr3.0纯注解配置

Dwr(Direct Web Remoting) 是一种轻量级的远程框架,它可以实现web端的无刷新操作、异步处理,极大地提高了web应用的用户体验。

需要说明的是,这里提到的Dwr3.0纯注解配置,与使用传统的dwr.xml配置文件的方式相对。

Dwr3.0纯注解配置,是指采用纯Java Code配置的方式,完全抛弃传统的dwr.xml配置文件。在这种配置方式下,我们通过在Java代码中使用注解,来配置DWR。

使用Dwr3.0纯注解配置的优缺点

优点

  1. 方便管理

纯注解配置,不需要额外的配置文件,很大程度上减轻了项目管理的工作量。

  1. 操作简单

采用注解配置的方式,无需修改任何配置文件,后续维护改动也十分方便。

缺点

  1. 学习成本

相对于配置文件的方式,采用注解配置需要更多的学习成本。对于不熟悉注解的开发者,可能需要花费一定的时间去学习。

  1. 侵入性强

采用注解配置的方式,会直接侵入到业务代码中,如果做法不当,很容易导致代码杂乱,不便于后续维护。

Dwr3.0纯注解配置的应用

1. 基本配置

@Configuration
@EnableDwr
public class DwrConfig {

    // 注册dwr servlet
    @Bean
    public ServletRegistrationBean dwrServlet() {
        DwrServlet servlet = new DwrServlet();
        ServletRegistrationBean registrationBean = new ServletRegistrationBean(servlet, "/dwr/*");
        return registrationBean;
    }

    // 配置需要暴露给web端调用的java类和方法
    @Bean
    public DwrClassMapper dwrClassMapper() {
        DwrClassMapper dwrClassMapper = new DwrClassMapper();
        dwrClassMapper.addAutoDetectHandlers(true);//开启开关
        return dwrClassMapper;
    }

}

在这个基本配置中,我们主要做了两个事情:

  1. 注册DWR的servlet
  2. 配置需要暴露给Web端的Java类和方法

2. Java类注解配置

我们除了上面的基本配置,需要在Java类和方法上添加注解以及参数配置,这样才能够将我们的Java代码操作暴露到Web中并且可以通过AJAX进行访问。

下面是示例代码:

@Service("userService")
public class UserServiceImpl implements UserService {

    @Override
    @RemoteMethod
    public User login(@RemoteParam(name = "username") String username, @RemoteParam(name = "password") String password) {
        // 省略实现内容
        return user;
    }

    @Override
    @RemoteMethod
    public boolean update(User user) {
        // 省略实现内容
        return true;
    }
}

在这个示例中,我们通过@Service注解将这个Java类标记为一个Service,并且通过@RemoteMethod和@RemoteParam注解,将login和update方法标记为需要暴露给Web端的方法。

其中,@RemoteParam注解的name属性指定了Web端访问时传递的参数名字。

3. 前端的调用

在前端的AJAX调用也十分简单:

var login = function () {
    var username = $("input[name='username']").val();
    var password = $("input[name='password']").val();
    $.post("dwr/userService/login", {username:username, password:password}, function (data) {
        if(data != null){
            // 登录成功
        }else{
            // 登录失败
        }
    },"json");
}

在这个调用方法中,我们通过$.post方法调用到了被@WebService注解标记为UserService的login方法,在这个方法中,我们将传递的参数名称设置为了username和password。

总结

DWR的Java Code配置方式,相对于传统的dwr.xml配置文件方式,更便于管理和操作。同时,Java Code配置可以更好地维护代码的结构和风格。

总之,根据实际情况选择合适的方案即可。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Dwr3.0纯注解(纯Java Code配置)配置与应用浅析一之零配置文件化 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • js对象合并的4种方式与数组合并的4种方式

    下面是对“js对象合并的4种方式与数组合并的4种方式”的详细讲解攻略: JS对象合并的4种方法 在JS中,有多种方法可以合并两个或多个对象,如下: 1. 手动遍历合并 这种方式是通过遍历对象中的属性并将其复制到另一个对象中来进行合并的,可以使用 for…in 循环或 Object.keys 方法获取要遍历的属性,示例如下: let obj1 = {a: …

    JavaScript 2023年5月27日
    00
  • 实例详解JavaScript中setTimeout函数的执行顺序

    接下来我将详细讲解“实例详解JavaScript中setTimeout函数的执行顺序”的完整攻略。 一、背景介绍 在JavaScript中,setTimeout函数是一种异步操作,可以实现延迟执行某个函数或代码块的功能。在使用setTimeout时,我们需要了解其执行顺序和一些注意事项,才能保证程序的正确性。 二、setTimeout函数的基本用法 setT…

    JavaScript 2023年5月28日
    00
  • JS小球抛物线轨迹运动的两种实现方法详解

    JS小球抛物线轨迹运动的两种实现方法详解 抛物线是物理学中比较重要的概念,它被广泛应用于不同领域,例如火箭的轨迹控制,弹道导弹的飞行轨迹等。在Web开发中,利用抛物线动画效果能够使页面更加生动有趣。下面我们将介绍两种不同的实现方法,详细讲解如何实现JS小球抛物线轨迹运动。 方法1:利用定时器 要实现小球的抛物线轨迹运动,我们可以利用数学公式来实现小球的位置计…

    JavaScript 2023年5月28日
    00
  • 在layui中使用form表单监听ajax异步验证注册的实例

    下面我来详细讲解一下“在layui中使用form表单监听ajax异步验证注册的实例 ”的攻略步骤。 1. 准备工作 在使用layui实现前端异步验证的功能之前,我们需要先引入layui。在网页中加入以下代码: <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax…

    JavaScript 2023年6月10日
    00
  • JavaScript精炼之构造函数 Constructor及Constructor属性详解

    JavaScript精炼之构造函数 Constructor及Constructor属性详解 什么是构造函数 在面向对象编程中,构造函数是创建对象的一种特殊方法。它用于创建并初始化由该类创建的对象,可以简单理解为一个模板,用来创建对象。 构造函数的语法 构造函数的语法格式为: function ConstructorName(arguments) { // 对…

    JavaScript 2023年6月10日
    00
  • JS代码判断集锦大全第4/5页

    关于“JS代码判断集锦大全第4/5页”的完整攻略,可以分为如下几个部分进行讲解。 集锦内容简介 首先,我们先来了解一下“JS代码判断集锦大全第4/5页”的内容情况。该集锦共包含多个小节内容,每个小节都是介绍一种JS代码判断方法,通过这些方法可以更好地操控和优化JS代码。 具体来说,该集锦中包括了如下这些小节: 类型判断 对象属性判断 数组判断 函数判断 取值…

    JavaScript 2023年5月18日
    00
  • javascript的数据类型、字面量、变量介绍

    当谈到 JavaScript 时,数据是非常重要的。JavaScript 可以处理多种类型的数据。对于每种数据类型,JavaScript 都有相应的字面量和对应的变量类型。下面将详细介绍 JavaScript 数据类型、字面量和变量。 数据类型 JavaScript 有七种数据类型,其中六种是原始类型,一种为对象类型。原始类型包括数字、字符串、布尔值、nul…

    JavaScript 2023年5月28日
    00
  • FCKeditor 和 SyntaxHighlighter 代码高亮插件的整合

    下面是关于“FCKeditor 和 SyntaxHighlighter 代码高亮插件的整合”的详细攻略。 概述 首先我们要理解这两个插件是什么。FCKeditor是一个基于Web的WYSIWYG文本编辑器,可以方便地进行文本排版,支持多种格式,具有图形用户界面。而SyntaxHighlighter是一个代码高亮插件,可以让我们方便地将代码高亮显示,并可以自定…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部