springboot生成二维码

1:添加依赖

    <!-- 二维码支持包 -->
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
            <version>3.2.0</version>
        </dependency>

        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>javase</artifactId>
            <version>3.2.0</version>
        </dependency>

2:service层:

 /**
     * 生成二维码方法
     *
     * @param url  访问链接
     * @param resp response对象
     * @throws Exception 抛出异常
     */
    public void getQrcode(String url, HttpServletResponse resp) throws Exception {

        ServletOutputStream stream = null;
        try {
            stream = resp.getOutputStream();
            QRCodeWriter qrCodeWriter = new QRCodeWriter();
            BitMatrix bm = qrCodeWriter.encode(url, BarcodeFormat.QR_CODE, 300, 300);
            MatrixToImageWriter.writeToStream(bm, "png", stream);

        } catch (WriterException e) {
            e.getStackTrace();


        } finally {
            if (stream != null) {
                stream.flush();
                stream.close();
            }
        }
    }

  controller层:

 @Autowired
    private QRcodeService qRcodeService;

    @RequestMapping(value = "/open")
    public ModelAndView open(){
        ModelAndView mv=new ModelAndView();
        mv.setViewName("/test.btl");
        return mv;
    }

    @RequestMapping(value = "/qrcode",method={RequestMethod.POST,RequestMethod.GET})
    public ModelAndView qrcode( String qrid,HttpServletResponse response){
        ModelAndView mv=new ModelAndView();


        try {
            qRcodeService.getQrcode(qrid,response);
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        mv.addObject("qrid",qrid);
        mv.setViewName("test.btl");
        return mv;
    }

前端页面:

    <form id="enter" action="/qrcode" method="post"  class="form-horizontal form-label-left">
                                    <div class="form-group">
                                        <label class="control-label col-md-3 col-sm-3 col-xs-12">票编号</label>
                                        <div class="col-md-9 col-sm-9 col-xs-12">
                                            <input name="qrid" id="qrid" type="text" class="form-control" placeholder="请输入有效的票编号" required>
                                        </div>
                                        <div class="modal-footer">
                                            <button type="submit"  class="btn btn-primary">提交</button>
                                        </div>
                                    </div>
                                </form>

然后就在可以在前端页面输入你要生成二维码的内容啦。

猜你喜欢

转载自www.cnblogs.com/a565810497/p/9499754.html