【SpringBoot】SpringBoot生成二维码
程序员文章站
2022-06-24 12:51:11
文章目录效果图步骤maven依赖工具类service扩展局域网调试线上调试效果图步骤maven依赖 com.google.zxing javase 3.3.0...
效果图
步骤
maven依赖
<!-- 生成二维码-->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.3.0</version>
</dependency>
工具类
package com.bennyrhys.mall.util;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Path;
/**
* 描述: 生成二维码工具
*/
public class QRCodeGenerator {
public static void generateQRCodeImage(String text, int width, int height, String filePath)
throws WriterException, IOException {
QRCodeWriter qrCodeWriter = new QRCodeWriter();
BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);
Path path = FileSystems.getDefault().getPath(filePath);
MatrixToImageWriter.writeToPath(bitMatrix, "PNG", path);
}
public static void main(String[] args) {
try {
generateQRCodeImage("Hello World", 350, 350, "E:/JAVA/mall/src/main/resources/images/QRTest.png");
} catch (WriterException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
service
/**
* 生成二维码
* 图片可解析出访问的支付对应订单号的支付连接
* @param orderNo 订单号
* @return 返回图片地址
*/
@Override
public String qrcode(String orderNo) {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
String address = ip + ":" + request.getLocalPort();
String payUrl = "http://" + address + "/pay?orderNo=" + orderNo;
try {
QRCodeGenerator.generateQRCodeImage(payUrl, 350, 350, Constant.FILE_UPLOAD_PATH + orderNo + ".png");
} catch (WriterException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
String pngAddress = "http://" + address + "/images-dev/" + orderNo + ".png";
return pngAddress;
}
扩展
局域网调试
线上调试
切换ip# 指定IP(防止ip转发获取的是内网ip) file.upload.ip=127.0.0.1
本文地址:https://blog.csdn.net/weixin_43469680/article/details/110791319
推荐阅读
-
Springboot 使用@Valid+BindingResult进行controller层接口参数校验
-
SpringBoot表单验证(注解验证)@Validated使用
-
基于google zxing的Java二维码生成与解码
-
SpringBoot与Quartz集成实现分布式定时任务集群的代码实例
-
详解SpringBoot和Mybatis配置多数据源
-
SpringBoot+Swagger-ui自动生成API文档
-
11分钟学会JS生成二维码
-
springboot集成rabbitMQ之对象传输的方法
-
Springboot2.X集成redis集群(Lettuce)连接的方法
-
springboot实现文件上传和下载功能