본문 바로가기

웹 개발/Spring Boot

(22)
Spring Boot) resource에 저장된 파일 다운로드 (JAR 파일에서도 접근 가능) jar 파일로 말면 기존 프로젝트 디렉토리랑 구조가 달라져서 resource 폴더 내에 저장된 파일 경로가 꼬이더라 그래서 사용한 방법 핵심은 이 부분!! Path filePath = Paths.get(File.separatorChar + "directory_name", File.separatorChar + fileName); Resource resource = new InputStreamResource(getClass().getResourceAsStream(filePath.toString())); Controller @GetMapping(value = "input-template-download/{fileName}") public ResponseEntity downloadResourceFile(@Pat..
Spring Boot) properties 파일로 변수 주입받아 사용하기 (profile 활용) 환경 SpringBoot + Gradle 개발 서버에서 사용해야할 변수와 운영, 테스트, 배포에 사용해야할 변수가 다를 경우, jar 파일을 생성할 때마다 특정 변수들을 집적 수정해야 하는 번거로움을 덜기 위해 profile을 등록하여 각 경우마다 주입받는 properties 파일을 다르게 설정하였다. 스프링부트 프로젝트를 시작하면 /home/tp/tp-platform/src/main/resources 이 경로에 application.properties 가 생성되어 있다. 이 파일에서 포트 넘버, db 관련 설정을 할 수 있고, 사용자 지정 변수도 만들 수 있다. application.proeperties example spring.profiles.active=dev server.port=8080 spr..
SpringBoot) 파일 이름을 파라미터로 파일 다운 받는 GET url 만들기 @GetMapping(value = "editor/{fileName}") public void fileDownload(@PathVariable String fileName, HttpServletResponse response) throws IOException{ response.setContentType("application/octer-stream"); response.setHeader("Content-Transfer-Encoding", "binary;"); response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\""); try { OutputStream os = response.getOutputStream()..
Spring Boot/Gradle) gradle build시 에러 발생/ FAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':test'. 로컬에서는 잘 실행되던 프로젝트가 우분투 서버에 올려두고 gradle build를 하려니 아래와 같이 fail 뜬다. 1 test completed, 1 failed FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. > There were failing tests. See the report at: file:///home/tp/tp-platform/build/reports/tests/test/index.html * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to ge..
Spring Boot) H2 데이터베이스 적재 문제 해결 / error creating bean with name 'datasourcescriptdatabaseinitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/datasourceinitializationconfiguration.class] /src/main/resource 폴더 하위에 schema.sql 파일 : 테이블 생성 sql 스크립트 작성 data.sql 파일 : 테이블에 데이터 insert 하는 스크립트 작성 spring.h2.console.enabled=true spring.h2.console.path=/h2-console spring.datasource.url=jdbc:h2:tp://localhost/(...) spring.datasource.username=username spring.datasource.password= spring.h2.console.settings.trace=false spring.h2.console.settings.web-allow-others=true spring.datasource.initializ..
Spring Boot) vscode에서 gradle로 jar 파일 빌드해서 실행시키기 vscode marketplace에서 gradle을 검색해서 다음과 같은 플러그인을 설치하면 왼쪽 사이드바에 코끼리 아이콘이 생깁니다. 코끼리 아이콘을 누르면 GRADLE 툴바가 왼쪽에 뜨는데 여기서 build/bootJar을 클릭하면 자동으로 빌드되어 프로젝트 파일 build/lib에 jar 파일이 생성됩니다. 생성된 jar 파일을 실행시킬 서버에 옮겨두고 (optional) jar 파일이 있는 폴더에서 터미널을 켜서 아래와 같은 명령어로 실행시키면 됩니다. java -jar
Spring Boot) 현재 페이지의 URL주소 가져오기 import javax.servlet.http.HttpServletRequest; ....HttpServletRequest request 선언 필요 아래와 같은 주소가 있을 경우 : http://localhost:8080/template/category1 //http://localhost:8080/template/index.jsp request.getRequestURI(); // 프로젝트 경로부터 파일까지의 경로 값 ex) /template/index.jsp request.getContextPath(); // 프로젝트의 경로값만 가져옴 ex) /template request.getRequestURL(); // 전체 경로 가져옴 ex)http://localhost:8080/template/index.jsp..
Spring Boot) 5. REST API 서버 만들기 + REST 관련 요소 1. REST Representational State Transfer 분산 네트워크 프로그래밍의 아키텍처 스타일 API : 데이터와 기능의 집합 , 이를 통해 데이터와 기능을 사용자들이 사용할 수 있게 함 REST API : API 구조가 REST 요건에 부합하는 경우 RESTful하다고 말함 1.1 REST의 특징 클라이언트 서버 클라이언트 서버가 각각 독립적 상태 없음 클라이언트 서버간 통신시 상태 없음, 서버가 클라이언트 상태 기억할 필요 없음 레이어드 아키텍처 서브 클라이언트 사이에 다 계층 형태로 레이아 추가, 수정, 제거 가능 캐시 캐시 있을 수도 있고 없을수도 있는데 있다면 클라이언트가 응답 재사용 할 수 있음. 서버 부하 낮춰서 성능 개선 코드 온 디맨스 요청이 오면 코드를 줌 특정 시점..