목차
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 설치
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
복사
•
결과 확인