添加依赖
<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.3.10</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.3</version> </dependency>
Service层
@Service @Slf4j public class QRCodeService { // 自定义参数,这部分是Hutool工具封装的 private static QrConfig initQrConfig() { QrConfig config = new QrConfig(300, 300); // 设置边距,既二维码和背景之间的边距 config.setMargin(3); // 设置前景色,既二维码颜色(青色) config.setForeColor(Color.CYAN.getRGB()); // 设置背景色(灰色) config.setBackColor(Color.GRAY.getRGB()); return config; } /** * 生成到文件 * * @param content * @param filepath */ public void createQRCode2File(String content, String filepath) { try { QrCodeUtil.generate(content, initQrConfig(), FileUtil.file(filepath)); log.info("生成二维码成功, 位置在:{}!", filepath); } catch (QrCodeException e) { log.error("发生错误! {}!", e.getMessage()); } } /** * 生成到流 * * @param content * @param response */ public void createQRCode2Stream(String content, HttpServletResponse response) { try { QrCodeUtil.generate(content, initQrConfig(), "png", response.getOutputStream()); log.info("生成二维码成功!"); } catch (QrCodeException | IOException e) { log.error("发生错误! {}!", e.getMessage()); } } }
Controller层
@RestController @Slf4j public class QRCodeController { @Autowired private QRCodeService qrCodeService; @GetMapping("qrCode") public void getQRCode(String codeContent, HttpServletResponse response) { try { qrCodeService.createQRCode2Stream(codeContent, response); log.info("成功生成二维码!"); } catch (Exception e) { log.error("发生错误, 错误信息是:{}!", e.getMessage()); } } }
原文:https://www.cnblogs.com/tang321/p/14735585.html