SpringBoot生成二维码并扫码
在Spring Boot中生成二维码并能够扫描的基本步骤如下:
- 引入
qrcode
库依赖。 - 创建一个控制器以响应生成二维码的请求。
- 使用
qrcode
库生成二维码图片。 - 提供一个页面以显示二维码图片。
以下是一个简单的示例:
pom.xml中添加依赖:
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.4.1</version>
</dependency>
生成二维码的控制器:
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 org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import javax.imageio.ImageIO;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
@Controller
@RequestMapping("/qrcode")
public class QRCodeController {
@GetMapping
public ModelAndView generateQRCode() throws WriterException, IOException {
String content = "扫描我进行测试";
int width = 200;
int height = 200;
QRCodeWriter qrCodeWriter = new QRCodeWriter();
BitMatrix bitMatrix = qrCodeWriter.encode(content, BarcodeFormat.QR_CODE, width, height);
ByteArrayOutputStream pngOutputStream = new ByteArrayOutputStream();
MatrixToImageWriter.writeToStream(bitMatrix, "PNG", pngOutputStream);
byte[] pngBytes = pngOutputStream.toByteArray();
ModelAndView mv = new ModelAndView("qrcode");
mv.addObject("qrcodeData", pngBytes);
return mv;
}
}
qrcode.html页面:
<!DOCTYPE html>
<html>
<head>
<title>二维码生成</title>
</head>
<body>
<img src="data:image/png;base64,{{ qrcodeData | base64 }}" />
</body>
</html>
注意:
- 请确保你的Spring
评论已关闭