//////
Search
🍊

[1102] 에라토스테네스의 체, DB에 데이터 넣기, 도커, maven 빌드하고 container 띄우기

생성일
2022/11/02 10:04
태그
TodayILearn
java
Spring
Docker
생성일 1
목차
controller - Presentation 영역
hospital dao - service 영역
jdbcTemplate jpa - data 영역

Hospital 데이터 출력 API

Dispatcher Serlvet 동작방식

FindById메소드를 이용하여 컨트롤러에서 구현

Optional 클래스
클래스를 사용해 NPE를 방지할 수 있도록 도와준다. Optional<T>는 null이 올 수 있는 값을 감싸는 Wrapper 클래스로, 참조하더라도 NPE가 발생하지 않도록 도와준다.
Null Pointer Exception 예외
코드
결과 확인

businessStatusCode가 13일 때 폐업으로 나오게 하려면?

비즈니스 로직이 들어간다.
시간 관계로 Docker 로 넘어갔다.

DB에 값 넣기

Presentation → Service(Business) → Data
Presentation과 비즈니스 로직을 분리하기 위한 계층
@Component 어노테이션과 같은 기능
@ComponentScan 할때 Bean으로 등록 됩니다.
Service 코드
테스트 코드 변경
결과 확인

도커, maven 설치

docker_minikube_kubectl_install
Kyeongrok
sudo su - mkdir git cd git git clone https://github.com/Kyeongrok/docker_minikube_kubectl_install
Java
복사
sh docker_install.sh
Java
복사

도커에 Mysql 띄우기

명령어
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=12345678 -d mysql
Java
복사

도커에 maven 띄우기

1.
maven 설치(root에서)
apt update apt install maven -> 처음 설치 시 오래걸림
Java
복사
2.
최상위 파일로 이동
cd ~
Java
복사
3.
원하는 github 레포지토리를 clone
git clone (깃 주소) cd springboot-jdbc-template-userdao(생성된 깃헙파일) //rm -rf Dockerfile
Java
복사
4.
도커에 빌드하기위한 작업 Dockerfile 작성
*참고 : shift+insert를 사용하면 복붙가능하다
FROM openjdk:11-jdk-slim VOLUME /tmp ADD /target/*.jar app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
Java
복사
명령어 입력순서(윈도우 버전)
vim Dockerfile i Shift + insert (command + v) Esc Shift + zz
Java
복사
도커에서 깃허브에 올린 것 빌드 하기
.의 앞뒤로 스페이스 꼭!!
docker build -t springboot-jdbc-template .
Java
복사
6.
maven 처음 빌드할 때 시간이 좀 오래 걸린다. 빌드 후에 두번째 명령어에서 .jar을 만들어준다.
mvn package (mvn pacakge 빌드하고) mvn -DskipTests=true package docker build -t springboot-jdbc-template . (docker 빌드) docker images docker ps
Java
복사
mvn package 성공 시 보이는 화면
docker images

jar 파일 ec2에 올리는 명령어

→ docker을 거치지 않고 우분투 리눅스에서 바로 띄웠다.
→ swagger에 접속하면 내 폰에서도 확인할 수 있다.
properties(혹은 yml) 파일에 DB 관련 환경 변수가 작성 되어 있어야만 정상 실행
Java
복사
mvn -DskipTests=true package cd target java -jar crud-api-0.0.1-SNAPSHOT.jar // 강사님 github를 clone했을 경우 java -jar hello-api-0.0.1-SNAPSHOT.jar
Java
복사
결과 확인