1. build.gradle 파일에서 아래 플러그인 있는지 확인
2. build.gradle 파일에서 만들 JAR 파일 관련 설정
3. build.gradle 파일에서 JAR 파일 관련 설정 2
bootJar는 jar 파일을 바로 실행 가능하게 해줄 것인지의 여부 결정
(enable로 설정하면 bootJar가 임베디드 톰캣을 이용해서 스탠드얼론 형식으로 서버를 띄울 수 있도록 형식을 갖추어 jar 파일을 생성해준다. -> vm이 main을 불렀을 때, 톰캣을 띄우고 어플리케이션을 띄워서 실행 가능하게 해주는 포맷으로 jar를 빌드해주는 것이다.)
jar는 jar 파일 자체를 만들지 여부를 설정하는 것이다.
4. bootJar로 jar 파일 만들기
아래 사진의 Tasks -> build -> bootJar 를 더블클릭하면 JAR 파일이 생성된다.
하단은 jar 생성 완료(빌드 성공)의 모습
5. 생성된 JAR 파일은 프로젝트 파일의 build 폴더 -> libs 폴더 내에 생성된다.
'JAVA Spring' 카테고리의 다른 글
Spring Annotation) @GetMapping, @RequsetMapping 차이 (0) | 2020.08.31 |
---|---|
JAVA Spring) Web server failed to start. Port 8080 was already in use. 해결 방법 (0) | 2020.08.31 |
JAVA Spring) ResponseEntity란 무엇인가? (0) | 2020.08.31 |
Spring Annotation) @ResponseBody (0) | 2020.08.31 |
Spring Annotation) @CrossOrigin (0) | 2020.08.31 |
JAVA Spring
7개Spring) JAR 파일 만들기 (bootJar) - IntelliJ 환경
1. build.gradle 파일에서 아래 플러그인 있는지 확인 2. build.gradle 파일에서 만들 JAR 파일 관련 설정 3. build.gradle 파일에서 JAR 파일 관련 설정 2 bootJar는 jar 파일을 바로 실행 가능하게 해줄 것인지의 여부 결정 (enable로 설정하면 bootJar가 임베디드 톰캣을 이용해서 스탠드얼론 형식으로 서버를 띄울 수 있도록 형식을 갖추어 jar 파일을 생성해준다. -> vm이 main을 불렀을 때, 톰캣을 띄우고 어플리케이션을 띄워서 실행 가능하게 해주는 포맷으로 jar를 빌드해주는 것이다.) jar는 jar 파일 자체를 만들지 여부를 설정하는 것이다. 4. bootJar로 jar 파일 만들기 아래 사진의 Tasks -> build -> bootJar..
JAVA Spring 2020.09.02 starmk95Spring Annotation) @GetMapping, @RequsetMapping 차이
두 어노테이션 모두 해당 url 입력에 대해 반응하도록 해주는 어노테이션인데 @GetMapping 어노테이션은 @RequestMapping을 특정한 방식으로 사용한 것이라고 할 수 있다. @GetMapping은 @RequestMapping(method = RequestMethod.GET)과 동일한 기능을 수행한다. 즉, 오른쪽 명령어의 단축어라고 할 수 있다. 풀어말하면 @RequestMapping의 기능으로 해당 url에 대한 요청을 처리하는데, 이를 GET 요청으로 받는다는 것이다. 이를 간단하게 적을 수 있게 @GetMapping이 등장했다. 번외로 @PostMapping, @PutMapping, @DeleteMapping도 있다. (@GetMapping와 같은 원리임) 사용범위에서도 차이가 있는데..
JAVA Spring 2020.08.31 starmk95JAVA Spring) Web server failed to start. Port 8080 was already in use. 해결 방법
# 발생 이유 위 사진과 같은 에러는 로컬 포트(8080 포트)를 이미 사용하고 있는 프로세스가 있기 때문에 발생한 것이다. 인텔리제이 커뮤니티에디션의 경우에는 스프링을 공식지원하지 않는다고 한다. 그래서 스프링 부트가 돌아가는 방식이 VM 메인이 먼저 돌아가고 그 VM 메인이 스프링부트 어플리케이션을 띄우는 구조를 갖는다고 한다. 이때 스프링 부트를 끄지 않고 VM 메인을 종료시키면 VM 메인만 종료되고 부트는 혼자 계속 돌아간다. 그렇기 때문에 프로그램을 끈 것처럼 보여도 실제 프로세스(스프링 부트)는 로컬 포트를 사용중인 것이 되는 것이다. # 해결방법 로컬 포트 8080을 사용중인 프로세스를 kill 해주면 된다. Windows 기준으로 cmd창을 키고 1. 8080 포트를 사용하고 있는 프로세스..
JAVA Spring 2020.08.31 starmk95JAVA Spring) ResponseEntity란 무엇인가?
# ResponseEntity - ResponseEntity는 RESTful API에서 return type으로써 사용된다. - 일반적인 MVC의 Controller는 View를 사용하지만, RESTful은 객체를 반환하면 이를 JSON 형식으로 직접 HTTP Body에 넣어준다. (@ResponseBody와 유사한 가능을 한다.) - ResponseEntity는 HTTP의 Header, Body, Status Code를 제어할 수 있다. (ResponseBody보다 세밀한 작업 가능) - ResponseEntity를 return type으로 지정하면 JSON 또는 XML 형식으로 결과를 내준다. - ReponseEntity는 HttpEntity를 상속받음으로써 HTTP Header와 Body를 가질 수..
JAVA Spring 2020.08.31 starmk95Spring Annotation) @ResponseBody
# @ResponseBody @ResponseBody 어노테이션은 받은 요청에 대한 결과를 View를 통해 내려주지 않고(View Resolver를 거치지 않음) HTTP의 body에 직접 반환해주도록 한다. 위 어노테이션이 없을 경우 요청이 들어오고 이에 해당하는 controller를 찾게 되면, 그 controller에서 작업이 수행되고 view를 반환한다. 그럼 ViewResolver하는 곳에서 그에 맞는 View를 찾아서 내려준다. 그러나 @RespinseBody 어노테이션이 붙은 controller에 맵핑되면 작업 수행 후에 나오는 데이터를 ViewResolver 대신 동작하는 HttpMessageConverter에서 받고 HTTP의 body로 바로 넣어서 내려준다. 반환 값이 문자열인 경우에는..
JAVA Spring 2020.08.31 starmk95Spring Annotation) @CrossOrigin
# @CrossOrigin @CrossOrigin은 CORS 설정을 위한 어노테이션이다. 메소드, 클래스위에 작성된다. # CORS란? Cross-Origin Resource Sharing의 약자이다. 원래 Same-Origin Policy라는 동일한 도메인으로만 HTTP 요청을 받을 수 있다는 규칙이 있었다. 그러나 이 규칙 때문에 다른 도메인의 API를 활용하는데 문제가 생기고, 한 서버에서 여러 도메인을 처리하는 경우에도 문제가 발생하게 된다. 때문에 이를 극복하기 위한 방법으로JSONP(JSON with Padding)이라는 다른 도메인에서 우회를 통해 서버로 접근하는 방법이 생겨난다. 하지만 이러한 방법은 보안상에 문제가 될 수 있기 때문에 계속 사용되도록 방치할 수 없었다고 한다. 그렇다고 아..
JAVA Spring 2020.08.31 starmk95JAVA Spring) 프로젝트 생성하기
0. IntelliJ 또는 Eclipse 준비, JAVA 11 버전 준비 1. Spring Boot을 통해서 프로젝트를 생성한다. https://start.spring.io/ 위 사이트로 접속해서 프로젝트에 대한 설정들을 하고 파일을 다운로드한다. 이번 예시에서는 Spring Web과 Thymeleaf 라이브러리를 가져온 프로젝트를 예로 든다. 2. 위 사이트 하단의 GENERATE 버튼을 클릭하면 압축파일이 다운로드되는데, 이 파일의 압축을 풀고, 인텔리제이에서 새 프로젝트로 import project을 통해 압축을 푼 파일 내에 build.gradle 파일을 열어서 프로젝트를 연다. 3. 생성한 프로젝트에서 main 메소드를 실행한다. 그러면 위와 같이 실행된다. 실행결과의 Tomcat 부분의 포트 ..
JAVA Spring 2020.08.10 starmk95