[SpringBoot] war 배포
·
IT/Spring
2018년 초가을 대전에서 모 프로젝트를 진행했을 때, 고객님께서 무조건 톰캣에 war로 배포를 해달라는 요청이 있었습니다. 프로젝트 막판까지 개발은 SpringBoot로 개발하고 Jar 배포로 다 합의된 사항이었지만.. 마지막에 고객님의 강력한 요구로 war로 묶어서 톰캣에 올렸던 추억을 생각하면서 어떤 부분을 고쳐야 war로 묶을 수 있는지 보겠습니다. pom.xml 에서 jar 부분을 war 로 변경을 해줍니다. war로 패키징 한 후에 톰캣에 올라갈 수 있게 spring-boot-starter-tomcat 을 추가해줍니다. org.springframework.boot spring-boot-starter-tomcat provided 그러고 나서 Build 부분에 finalName 추가해 줍니다. d..
[SpringBoot] 파일 다운로드
·
IT/Spring
VideoRestController.java @GetMapping(value = "/{videoId}/download", produces = MediaType.APPLICATION_JSON_VALUE) public StreamingResponseBody findVideoFileDownload(@PathVariable(name="videoId") String videoId,HttpServletResponse response) throws FileNotFoundException { // TODO Auto-generated method stub return this.videoServiceImpl.findVideoFileDownload(videoId, response); } VideoService.java pu..
[JPA] JPA Auditing
·
IT/Spring
엔티티에는 보통 해당 데이터의 생성,수정 시간이 포함한다. 예를 들어 새로운 회원이 언제 가입했는지, 그리고 로그인을 마지막으로 언제 했는지를 알기 위해서도 필요한 부분이다. 그럴 때 이제 엔티티마다 날짜 데이터를 등록/수정 하는 코드를 추가하게 되는데, 이럴 때마다 코드는 반복되고, 결국엔 지저분 해지는 결과를 초래한다. 이러한 문제를 해결하는 방법은 뭐가 있을까? 바로 "JPA Auditing" 이다. 1. BaseTimeEntity 만들고, @EntityListeners 을 통해 BaseTimeEntity 클래스가 Auditing 기능을 쓸 수 있도록 만든다. package com.incheol.app.domain.post; import java.time.LocalDateTime; import ja..
[JUnit] 테스트 기본 - 2
·
IT/Spring
오늘은 url 호출에서 parameter가 존재할 때 테스트를 어떻게 하는지 알아본다. 아래와 같이 name 과 age 파라미터를 통해 url을 Get으로 호출 하려고 할 때 코드와 테스트 코드를 어떻게 작성하는지 알아본다. http://localhost:8080/hello/dto?name=incheol&age=28 HelloResponseDto.java 을 생성한다. package com.incheol.app.web.dto; import lombok.Getter; import lombok.RequiredArgsConstructor; @Getter @RequiredArgsConstructor public class HelloResponseDto { private final String name; priv..