본문 바로가기
반응형

springboot15

[Docker] Springboot 서버 띄우기(com.mysql.cj.jdbc.exceptions.communicationsexception: communications link failure 에러) Local에서만 테스트 하던 springboot 서버를 docker 를 통해서 띄우는 방법을 공유한다. 먼저 docker 를 띄우려면 docker image가 있어야한다. dockerfile 관련해서는 아래 참고 포스팅 참고 바란다. 필자가 사용한 dockerfile은 아래와 같다. FROM openjdk:17-oracle ARG JAR_FILE=*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"] 사용하는 java 는 17버전이고 jar 파일을 app이라는 이름으로 복사하여 사용하였다. docker 실행 명령어는 다음과 같다. -> docker run -p 8080:8080 springtest/test -p 를 통해서 8080을 맞춰.. 2023. 10. 19.
spring -> springboot 로 프로젝트 변경 여러개의 프로젝트를 사용중에 있는데 그중 spring 프로젝트가 존재하여 해당 프로젝트를 springboot 프로젝트로 변경을 하려고 한다. 스프링과 스프링 부트의 차이는 아래 참고 포스팅 참고 바란다. 프로젝트를 변경해주려면 간단하다. maven기준으로 설명을 하면 springframework 를 boot 로 pom.xml 에 설정만 변경해주면 된다. ... ... org.springframework.boot spring-boot-starter-parent version ... ... org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-security ... javax.servlet js.. 2023. 8. 30.
SPRINGBOOT 에서 등록된 Bean 추출 이전 포스팅에서 applicationContext를 통해서 bean을 넣는것이랑 Bean에 대한 개념을 다룬글이 있다. 자세한 내용은 아래 참고 포스팅을 참고 바란다. 이번 포스팅은 Springboot에서 서버를 기동 시키게 될때 Spring container는 bean을 모두 등록하는데 그 리스트를 출력을 하는방법을 다뤄보려고 한다. SpringBoot 프로젝트를 starter 를 통해서 생성을 할 경우 Project명Application.java 파일이 자동으로 생성이 된다. 그 안에는 package랑 기본적인 main 메서드가 들어가있다. 아래와 같다. package com.명; import org.springframework.boot.autoconfigure.SpringBootApplication.. 2023. 6. 1.
스프링부트 동작 원리 스프링부트에 대한 설명은 아래 참고 사이트를 확인해보도록 한다. 이번 포스팅에서는 전체적인 설명보다는 스프링부트에서 동작하는 과정에 대해서 기술해볼것이다. 일단 내장 톰캣을 갖는 스프링부트는 jar파일로 배포를 하여 톰캣으로 실행할수가 있다. 서블릿컨테이너를 통해서요청을 받고 url 주소를 받으면 먼저 frontController 패턴으로 넘어간다. 이 패턴에서는 해당 요청에 알맞는 응답이 있는 코드로 값을 넘겨준다. 요청에 의한 값이 2번바뀌게 되는데 이때 요청한 값을 유지하기 위해서는 requestDispatcher를 사용하게 된다. requestDispatcher를 사용하여 요청과 응답을 그대로 유지 시키고 dispatcher로 인해서 생긴 수많은 객체들은 ApplicationContext에서 관리.. 2022. 4. 30.
Tomcat 서버에 springboot war파일 배포 Tomcat 폴더 안에 보면 다양한 폴더 들이 존재한다. 대표적으로 bin - 실행, 설치, 종료 등을 위한 폴더 conf - 설정 파일에 대한 폴더 log - 로그파일 폴더 lib - 라이브러리 폴더 temp - 임시파일 폴더 webapps - document 경로 폴더 등이 있다. 간단한 인터프린터 언어로 된 파일이나 스크립트 등은 webapps 폴더에 root폴더 안에 넣으면 http://ip:port/파일명 이런 식으로 브라우저에서 볼수가 있다. Spring 프로젝트를 통해서 배포를 하려면 war파일이나 jar 파일 등으로 배포가 가능한데 포스팅에서는 war 파일을 배포하는 방법에 대해서 작성해볼것이다. 먼저 pom.xml파일에 추가하도록 한다. 톰캣 의존성 추가 org.springframewor.. 2022. 4. 20.
SpringBoot/JPA part.10 이번 포스팅은 CRUD 에서 마지막 delete에 관한 포스팅이다. 방법은 앞에서 Read를 할때와 비슷하다. id를 받아와서 그 id에 대한 값을 삭제할것이다. 시작은 controller 이고 delete 메서드를 사용할것이다. 다음과 같이 delete 관련 메서드를 작성한다. controller 메서드 추가 @DeleteMapping("delete") public void deleteBook(@RequestParam Long bookId) { Optional bookValue = bookRepository.findById(bookId); bookValue.ifPresent(selectUser->{ bookRepository.delete(selectUser); }); } param으로 id를 받아오고 .. 2022. 2. 8.
SpringBoot/JPA part.9 이번 포스팅은 CRUD 중에서 U update 순서다. 똑같이 controller에서 시작을 할것이다. update는 put메서드를 사용하게 된다. 방법은 id를 가지고 book 객체를 가져온 후에 바꿀 값을 함께 보내주며 그 값으로 대체를 하고 다시 저장해주는 방식으로 진행할 것이다. 먼저 controller에 put메서드를 추가한다. controller에 메서드 추가 @PutMapping("update") public String updateBook(@RequestParam Long bookId,@RequestBody Book book) { Optional bookValue = bookRepository.findById(bookId); bookValue.ifPresent(selectUser->{ se.. 2022. 2. 7.
SpringBoot/JPA part.8 이번 포스팅에서는 CRUD중에 Read에 대해서 실습을 해볼것이다. 한가지의 id값을 get 메서드를 보낼 것이고 그 id의 레코드를 가져와서 콘솔에 출력하는 것 까지 진행을 해보도록 하겠다. 시작은 controller에서 부터 시작이 되므로 create처럼 똑같이 controller에서 시작을 할것이다. controller에 아래와 같이 메서드를 추가 하였다. controller 추가 @GetMapping("read") public String findBook(@RequestParam Long bookId) { Optional book = bookRepository.findById(bookId); System.out.println(book); return null; } 메서드는 Get메서드를 사용하였고.. 2022. 2. 6.
SpringBoot/JPA part.7 저번 포스팅에서는 Entity 와 repository를 작성하였고, 이번 포스팅에서는 controller부분을 설정하면서 시작할것이다. 저번에 만든 bookController.java 파일을 이어서 사용할것이다. test이름이 있는 method 말고 추가로 method를 만들어주도록 한다. 그리고 위에 annotation에서 우리는 restapi를 사용할 예정이라 controller annotation을 restapi사용하기 위해 변경을 해주고 RequestMapping annotation을 사용하여 대분류 url 주소도 추가를 해주자. 모두 적용하면 아래와 같이 된다. controller 설정 import org.springframework.stereotype.Controller; import org... 2022. 2. 5.
반응형