一、效果图
二、实现代码
1.添加依赖
<!-- zxing生成二维码 -->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.3.3</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.3.3</version>
</dependency>
<!--开发工具集-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.6.10</version>
</dependency>
2.自定义一Java Config配置文件
@Configuration
public class QRConfig {
//采用JavaConfig的方式显示注入hutool中 生成二维码
@Bean
public QrConfig qrConfig(){
//初始宽度和高度
QrConfig qrConfig=new QrConfig(300,300);
//设置边距,即二维码和边框的距离
qrConfig.setMargin(2);
//设置前景色
qrConfig.setForeColor(Color.BLACK.getRGB());
//设置背景色
qrConfig.setBackColor(Color.WHITE.getRGB());
return qrConfig;
}
}
3.编写接口
//生成二维码并将其返回给前端
@Autowired
QrConfig config;
// 返回数据流形式
@PostMapping("/getQRcode")
public void getQRcode(String content, HttpServletResponse response){
try {
QrCodeUtil.generate(content, config, "png", response.getOutputStream());
} catch (QrCodeException | IOException e) {
e.printStackTrace();
}
}
// 返回文件形式
@PostMapping("/getQRcode")
public void getQRcode(String content, String filePath){
try {
QrCodeUtil.generate(content, config, FileUtil.file(filePath));
} catch (QrCodeException | IOException e) {
e.printStackTrace();
}
}