拥抱开源 | 快速生成二维码开源组件

快速添加二维码开源组件

这是一个方便Java-web快速开发的一个小工具,咱们仅需两个参数就能够向前端返回对应的二维码。前端

前言

这个组件来源于项目中有一个这样的功能:扫码添加好友。(下图为组件Demo实现)git

图片描述

这是一个很常见的功能,大部分朋友也均可以实现,就是将相似Token这样的用户随机生成且惟一的标签转换为二维码,再扫码的时候由前端获取并向后台请求,借助Token显示好友信息,并由用户决定是否添加好友。程序员

在作项目架构设计的时候,临近周五,因此抽了时间,敲敲代码,实现了这个功能,可是为了之后的便捷使用,本身也将功能模块抽成一个小组件。github

在这里忽然提一下(题外话),周末看书时忽然以为这句话颇有道理,可以减小架构师与程序员之间的沟通成本将会大大缩短项目的开发周期,一个懂得底层代码实现的架构师,他或许对项目的程序员更了解,甚至在设计的时候就已经在构思如何写底层代码,本着这个思路,也硬是把模块抽出来。web

流程与功能

流程大体上面已经说过了,并且也比较简单,主要时如何考虑到之后的复用。若是是一个工具组件的话,那么必定不能仅仅针对于个人业务来讲。小程序

我尽量的加了一层封装,让咱们在业务层使用的时候方便一点。架构

咱们仅须要在控制层或者服务层,经过Autowired注入这个工具Bean,并调用create方法,你仅须要专一于你想要传入的内容与对这个二维码的命名。app

而相应的配置我都放在了application.yml函数

qrcode:
  handler: "/upload/**" #前端资源监听路径
  location: "file:E:/img/" #资源存放父目录
  parents: "E:\\img/" #资源存放父目录
  suffixname: ".png" #生成图片的后缀名称 默认
  format: "png" #生成图片的格式 默认
  width: 300 #二维码的宽 默认
  height: 300 #二维码的高 默认

如上配置是你须要在application.yml中去配置,不过你可能只须要添加前三项,后面的都作了默认参数设定,这里须要注意的是二维码格式默认为QRCode。工具

而对于业务层就仅仅须要调用就行了。

/**
 * 获取我的二维码
 * @param name
 * @return
 */
@PostMapping("/code")
public ResultVO code(@RequestParam("name") String name){
    String path = createQRCodeUtil.create(name,name);
    log.info(path);
    return ResultVoUtil.success(path);
}

工具将会自动返回图片路径,而前端仅须要在路径前缀加一开始在application.yml中的handler。以下是小程序中的图片请求加载js

/**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(options);
    code.code(options.name,(res)=>{
      this.setData({
        img:'http://192.168.1.121:8080/upload/'+res.data
      })
    })
  }

扩展与升级

这是一个很简单的版本,若是业务增长,它应该具有更加丰富的API,甚至符合各类各样的业务。可是你的第一个版本已经完成了,甚至你能够在项目中使用这样一个组件。开发几小时,可是发布到Maven中央仓库却是花了我一天时间,以前没有相似的经验,因此提交的时候出了些问题,一直没有提交上去,索性整改后就成功了,如今也能够在Maven搜索中看到这个工具组件。
图片描述
这里更多想说的是,你不须要作到很好的一个项目,可是若是你想要开源一个小组件,主要一两天就能够了。
图片描述

GitHub

项目地址:add-code
你能够这样使用:

<dependency>
    <groupId>com.github.UncleCatMySelf</groupId>
    <artifactId>add-code</artifactId>
    <version>1.0</version>
</dependency>

图片描述


图片描述

相关文章
相关标签/搜索