본문 바로가기

JAVA/Spring

(12)
[JAVA] find image file size - File 이미지 크기(가로X세로) 구하기 파일의 크기가 아닌 이미지 파일의 가로X세로 크기를 구하고 싶었다. BufferedImage 를 사용하여 이미지의 크기를 구해보자. @Transactional public String createImage(Image imgVo, MultipartFile file) { . . . if(file != null) { String restoNm = createAttachFile(imgId, file); Path filePath = fileCon.uploadFile(file,restoNm); try { File imageFile = new File(filePath.toString()); BufferedImage image = ImageIO.read(imageFile); // 이미지 파일 읽어오기 if (image..
[JAVA] 이미지 URL 변환 후 화면에 보여주기(가져오기) (feat.미리보기) 나는 클라이언트에서 특정 url 로 이미지를 요청하면 이미지를 보내주는 방식을 만들고 싶었다. Vue Axios 와 REST API, InputStream, URL.createObjectURL() 을(를) 이용하였다. 1. JAVA Spring Server 1) Controller @GetMapping(path = "image/{imgId}/show") public void getImageFileById(@PathVariable(name = "imgId") String imgId, HttpServletResponse response) throws IOException { service.getImageFileById(imgId, response); } 요청 받을 url path 설정해주고, url에 따라서..
[Spring] boot 에서 JWT 인증 토큰 생성 및 사용하기 1. JWT 인증 Json Web Token 인증에 필요한 정보들을 토큰에 담아 암호화시켜 사용하는 방식이다. 서명된 토큰이라는 점에서 쿠키보다 더 보안성이 높다. JWT의 구조 Header, Payload, Signature의 구성 요소로 이루어지며 각 구성 요소가 마침표(.)로 구분된다. Header - 토큰의 타입이나, 서명 생성에 사용되는 알고리즘을 저장한다. Payload - 토큰에 담을 정보를 key-value 형태로 저장한다. Signature - 서명이 저장되는데 암호화되어 있기 때문에 서버에 있는 개인 키로만 복호화가 가능하다. 2. JWT 생성 1) dependencies 추가 io.jsonwebtoken jjwt 0.9.1 org.springframework.security sprin..
[Spring] Multi module - 모듈 별 application.yml 파일 환경 설정 및 관리하는 방법 common 모듈 application.yml api 모듈 application-api.yml 다른 프로젝트를 import 해서 사용할 때 프로젝트 별로 yml 파일이 존재한다. 설정 파일의 이름이 동일 할 경우 상위 파일을 먼저 읽어서 하위 파일은 인식을 못 한다. common 과 api 의 application.yml 을 둘 다 사용해야 하는 경우를 알아보자. 모듈 별로 yml 분리하기 @SpringBootApplication public class apiApplication { public static void main(String[] args) { System.setProperty("spring.config.name", "application,application-api"); SpringAppli..
[JAVA] [Eclipse] project에 Dynamic Web Module 추가하는 방법 (Deployment Assembly) 프로젝트를 2개 이상 만들어서 하나로 build 및 deploy 하고 싶다면 이 기능이 필요하다. Properties > Project Facets > Dynamic Web Module 체크 후 Apply. 다시 프로젝트 마우스 우클릭 > Properties 를 들어가면, Deployment Assembly라는 메뉴가 생긴 걸 확인할 수 있다.
[JAVA] Map으로 전달 받은 JsonData List 목록(값) 추출하기 Map 형태로 클라이언트에서 전달 받은 값을 추출하고 싶은데, List 형태가 있다면? "name" : "test", "item" : [ { "x": 0, "y": 0, "w": 6, "h": 8, "i": 0 }, { "x": 0, "y": 0, "w": 3, "h": 2, "i": 0 } ] jsonData.get("name"); jsonData.get("item"); >> test >> Object Object get으로 값을 추출하면 해당 객체의 타입만 보여준다. 어떻게 불러와야 할까? List items = (List) jsonData.get("item"); for (Map item : items) { ... } item 을 List 변수에 담아주고 for문을 돌리면 된다.
[API] Spring boot + Swagger 3 (SpringDOC, OpenAPI) 적용 및 사용법 https://swagger.io/ API Documentation & Design Tools for Teams | Swagger Loved by all • Big & Small Thousands of teams worldwide trust Swagger to deliver better products, faster. swagger.io https://devel-log.tistory.com/43 [API] Spring boot Swagger 기본 사용법 https://swagger.io/ API Documentation & Design Tools for Teams | Swagger swagger.io Swagger UI 란 ? 별도의 코드 추가 없이 OpenAPI 규격에 맞게 자동으로 API를 시각화 시..
[Spring] JAVA - formData 이용하여 여러 개의 Entity(값/객체) 전송/전달 하기 formData 로 file 뿐만 아니라 일반 Entity 객체도 여러개 전송 가능하다. 메인 Entity 에 List 로 담아서 전달하는게 편하긴 하지만 이 방법도 있다~ 하고 올려본다. Multipart/Form-data 로 객체 전송 / 전달 하기. 1. Front const Sample = async () => { const formData = new FormData(); formData.append( "info", new Blob([JSON.stringify(info)], { type: "application/json" }) ); if (list.length > 0) { list.forEach(() => formData.append( "list", new Blob([JSON.stringify(l..
[Spring] Spring boot - application.yml 값 변수로 사용하기 application.yml common: count: 10000 1. application.yml 혹은 properties 에 지정한 값을 가져오려면 Class명 위에 @Service 혹은 @Component 등의 어노테이션을 설정 후, @Value("&{경로}") 를 지정해주면 된다. import org.springframework.beans.factory.annotation.Value; @Service class Test { @Value("${common.count}") private int count; } 2. 별도 Config Class 파일 생성하여 지정하기. ApplicationConfig.java @Data @Configuration @EnableConfigurationProperties ..
[Spring] context:component-scan 사용법 component-scan 이란? 빈으로 등록 될 클래스들을 스캔하여 빈으로 등록해주는 것이다. default - @Controller, @Service, @Component, @Repository 기본적으로 @Component 를 빈 등록 대상으로 포함한다. @Controller , @Service는 어떻게 인식하는 걸까? @Controller, @Service 가 @Component를 포함하고 있기 때문이다. 1. xml 파일 설정 base-package 기준으로 클래스들을 스캔하여 빈으로 등록한다. 여러개의 패키지를 쓸 수 있다. ex) 위와 같이 설정하면 base-package 하위의 @Controller, @Service, @Component, @Repository 모두 빈으로 등록된다. 특정한..