728x90
1. 먼저 zxing을 사용하기 위해 pom.xml에 추가해준다.
<dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.1.0</version> </dependency>
2. controller에 아래와 같이 작성한다.
아래의 메소드는 QRCode를 생성하고 저장하는 메소드이다.
@RequestMapping("qr.do") public String makeqr(HttpServletRequest request,HttpSession session,String storeName) throws WriterException, IOException { String root = request.getSession().getServletContext().getRealPath("resources"); //현재 서비스가 돌아가고 있는 서블릿 경로의 resources 폴더 찾기 String savePath = root + "\\qrCodes\\"; // 파일 경로 //파일 경로가 없으면 생성하기 File file = new File(savePath); if(!file.exists()) { file.mkdirs(); } // 링크로 할 URL주소 String url = "localhost:8800/jhpay/enterStore.do?store="+storeName; // 링크 생성값 String codeurl = new String(url.getBytes("UTF-8"), "ISO-8859-1"); // QRCode 색상값 int qrcodeColor = 0xFF2e4e96; // QRCode 배경색상값 int backgroundColor = 0xFFFFFFFF; //QRCode 생성 QRCodeWriter qrCodeWriter = new QRCodeWriter(); BitMatrix bitMatrix = qrCodeWriter.encode(codeurl, BarcodeFormat.QR_CODE,200, 200); // 200,200은 width, height MatrixToImageConfig matrixToImageConfig = new MatrixToImageConfig(qrcodeColor,backgroundColor); BufferedImage bufferedImage = MatrixToImageWriter.toBufferedImage(bitMatrix,matrixToImageConfig); //파일 이름에 저장한 날짜를 포함해주기 위해 date생성 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); String fileName=sdf.format(new Date()) +storeName; //파일 경로, 파일 이름 , 파일 확장자에 맡는 파일 생성 File temp = new File(savePath+fileName+".png"); // ImageIO를 사용하여 파일쓰기 ImageIO.write(bufferedImage, "png",temp); //리턴은 사용자가 원하는 값을 리턴한다. //작성자는 QRCode 파일의 이름을 넘겨주고 싶었음. return fileName+".png"; }
3. 설정한 경로에 qrcode 파일이 생성되는 것을 확인할 수 있다. ㅎㅎ
'Spring' 카테고리의 다른 글
[SOLVED] net.sourceforge.jtds.jdbc.clobimpl 오류 원인 (0) | 2024.06.04 |
---|---|
[SpringBoot] nginx 무중단 배포하기 (0) | 2023.02.15 |
[SpringBoot] AWS CI/CD 구성하기 (0) | 2023.02.14 |
[jstl: fmt] sql.date 형식을 date 형식으로 바꾸고 포맷하기! (0) | 2020.03.15 |
No editor descriptor for id com.springsource.sts.config.ui.editors.SpringConfigEditor 오류 (0) | 2020.01.28 |