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

yizhihongxing

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日

相关文章

  • JavaScript 中的无穷数(Infinity)详解

    那么首先需要明确的是,在 JavaScript 中,Infinity 是指表示正无穷大的数字常量。它比任何数都大,包括自身。同时,JavaScript 也提供了一个负无穷大的常量,即-Infinity。下面,我将会详细讲解 Infinity 在 JavaScript 中的应用及示例。 什么是 Infinity? Infinity 是一个 JavaScript…

    JavaScript 2023年5月27日
    00
  • 教你javascript如何获取对象的key和value

    当需要遍历一个JavaScript对象时,我们可能需要获取其key和value。下面是获取JavaScript对象key和value的两种方式: 获取对象key的方法 我们可以使用 for…in 循环语句来获取JavaScript对象的所有key: for(let key in obj) { console.log(key); // 输出该对象的所有ke…

    JavaScript 2023年5月27日
    00
  • js 函数的副作用分析

    JS 函数的副作用分析是指分析函数执行时除了返回值外,是否对外部环境造成了影响,例如修改全局变量值、修改参数值、调用外部API等。 以下是进行 JS 函数副作用分析的完整攻略: 步骤一:理解什么是函数的副作用 先来看看函数的定义: function add(a, b) { return a + b; } 这个函数的作用就是将两个值相加并返回结果,这里没有任何…

    JavaScript 2023年5月27日
    00
  • Javascript中的包装类型介绍

    当我们在Javascript中使用基本数据类型(如数字、布尔值、字符串)时,这些数据类型会隐式地转换为对应的包装类型(Number、Boolean、String)。这些包装类型使用对象的方式来包装基本类型,使得它们能够像对象一样调用方法和属性。以下是Javascript中的三个包装类型介绍: Number Number对象是数字的包装类型。它们支持许多有用的…

    JavaScript 2023年5月28日
    00
  • js替代copy(示例代码)

    JS替代Copy是指使用JavaScript实现复制文本到剪贴板的功能,从而替代传统的复制操作。以下是实现此功能的完整攻略: 1. 导入Clipboard API JavaScript提供了Clipboard API,可以用来读写剪贴板内容。要使用它,需要在代码中导入该API。示例代码如下: import ClipboardJS from ‘clipboar…

    JavaScript 2023年6月11日
    00
  • JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8

    这个错误提示通常是由于 HTML 文件中的字符编码指定错误导致的。下面是一些可能的原因和解决方案: 编码不匹配:HTML 文件头部的 charset 设置与 JavaScript 文件头部的 charset 不一致。如果 HTML 文件是以 UTF-8 编码保存的,而 JavaScript 文件是以 GB2312 编码保存的,则在运行 JavaScript …

    JavaScript 2023年5月19日
    00
  • js函数柯里化的方法和作用实例分析

    下面是 JS 函数柯里化的方法和作用实例分析的攻略: 什么是函数柯里化 函数柯里化是一种将接受多个参数的函数转换为接受一个单一参数的函数,并返回一个新的函数的技术。这个新函数能够接着接受剩下的参数,直到接收到所有参数为止。 举个例子,假设有一个 sum 函数可以接受多个数值参数: function sum(a, b, c) { return a + b + …

    JavaScript 2023年5月28日
    00
  • 获取当前月(季度/年)的最后一天(set相关操作及应用)

    获取当前月(季度/年)的最后一天,是一项非常实用的时间操作,可以用来生成各种类型的报表或实现预测功能。下面是完整的攻略: 获取当前月的最后一天 获取当前月的最后一天比较简单,可以用JS内置的Date对象来实现: const now = new Date(); const year = now.getFullYear(); const month = now.…

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