Spring boot Interceptor Ajax 체크 (Redirect 이슈)
·
Java/Spring Boot
2023.03.30 - [Etc] - 타 도메인에 쿠키 생성하기 타 도메인에 쿠키 생성하기 ✅ 문제 직면 현재 개발하는 서비스에서 다른 사이트의 로그인 정보를 받아야 하는 상황 속에서 SSO (Single-Sign-On)를 활용하지 않아본인이 직접 API를 통해 사용자 정보를 입력 받고 Session을 생성해 magicmk.tistory.com 이전 포스팅에서 Interceptor를 통해 Session을 체크하는 로직을 구현했었는데 Session을 체크하는 것 자체는 문제가 없었지만 다른 부분에서 약간의 문제가 발생하였는데 Ajax를 통해 접근 시 Redirect가 안된다는 것이었다. 그래서 Interceptor에서 Ajax 요청인지를 체크하고 로직을 다르게 구현하였다. 🟧 Interceptor & Aj..
Spring boot RestAPI 파일 다운로드
·
Java/Spring Boot
✅ Controller 로컬(서버)에서 가지고 있는 이미지를 클라이언트가 다운로드 받을 수 있도록 컨트롤러를 먼저 구현한다. /** * 이미지 다운로드 * @param elementId * @return */ @GetMapping("/imageDownload") public ResponseEntity imageDownload(@RequestParam String elementId) { File file = new File("C:/Temp/ECM/" + elementId + ".tif"); String path = "C:/Temp/ECM/"; // 이 부분은 ECM 엔진에서 이미지를 다운로드 받는 별도의 // 로직을 구현해뒀음 if(file.exists()) { path = path + elementId ..
Spring boot Controller Zip 압축 해제
·
Java/Spring Boot
회사 프로젝트를 진행하다가 MultipartFile로 전달받은 Zip 파일을 처리하는 방법을 알아보았다. Spring 게시판도 얼른 마무리 지어야하는데 회사업무 처리하는데 급급하다가 나태지옥에 빠져버려 아직도 손도 못대고 있다... 정신 차려야지 ㅠㅠ ✅Controller 우선 Controller에서 Zip 파일을 받아본다. @RestController public class IfElb008Controller { @PostMapping("/ifElb008") public Map scanImage(@RequestPart MultipartFile files) { return map; } } 평소와 같이 @RequestBody, @RequestParam을 사용하는 것이 아니라 @RequestPart를 사용하여..
Spring boot H2 DB 설정
·
Java/Spring Boot
Spring boot에서 DB를 무엇을 사용할까 고민하다 가장 간단한 방법인 H2 DB를 연동하였다. 우선 build.gradle에서 dependency를 설정해야 한다. dependency 설정 dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2databa..
[Spring boot + React] Rest Api 연동하기
·
Java/Spring Boot
구조 기본적으로 Spring 프로젝트 내부에 React가 들어가는 형식의 구조로 구성한다. 프로젝트 구조는 본인 편한 대로 구성해도 무방하다. Spring 프로젝트 생성 spring project 생성은 이곳으로 본인이 선호하는 java 버전과 프로젝트 내용을 선택하여 만들면 된다. frontend를 제외하고 위와 같이 프로젝트가 생성이 된다. React 프로젝트 생성 이제 react 프로젝트를 생성할 건데 위치는 원하는 곳에 넣어주면 된다. 나는 spring 프로젝트의 루트 디렉토리에 생성하였다. npx create-react-app {project name} {project name} 이라고 적은 곳에 원하는 app 이름을 작성하면 된다. proxy 설정 이상태로는 프론트와 백이 서로 다른 포트를 사..
Spring boot Scheduler 구현하기
·
Java/Spring Boot
사내에서 자정에 캠페인의 state 값들을 변경하기 위한 스케줄링 시스템이 필요하여 구현해 보았다. 스케줄러 기능 활성화 Spring boot는 지원하는 스케줄러가 존재하기 때문에 간단하게 활용할 수 있다. 기본적으로 프로젝트 Application 안에 @EnableScheduling 어노테이션을 사용하면 기능 활성화를 할 수 있다. @SpringBootApplication @EnableScheduling public class Application { public static void main(String[] args) throws ParseException, JsonProcessingException { SpringApplication.run(Application.class, args); } } 스케..