Spring Boot-2

윤상혁·2024년 10월 2일

(백기선)Spring Boot

목록 보기
2/10

메모하다가 문득 드는 생각이, 어차피 공식 Spring-Boot documentation 스샷하고 메모하는건데, 공식 문서 스샷 전부 다 하지 말고, 제목만 기입 & 필요한 내용(요약)만 기입하고, 자세한 건 공식 문서 참고하자!

-> 공식 문서에 검색란 있으니 이를 활용할 것!


Creating an Executable Jar -1

->spring-boot-loader를 사용함.

cf.)파일 구조는 그냥 참고만 하자!


Launching Executable Jars


Executable Jar Restrictions

->2번 째 설명할 때, 계층 구조로 설명하던데, 이 계층을 좀 잘 알아두는 게 좋을 거 같음..


Creating an Executable Jar -2

->pom.xml에 maven-plugin 코드를 넣으면 된다.

->target 디렉토리에 jar 파일 있음 & jar 파일 구성 보는 방법
->jar 파일 실행 코드

->cf.)직접 vscode에 돌려보니 잘 작동함을 알 수 있다!!


java -jar에서 'no explicit mapping for /error' 문제 뜰 때..

'분명, main문 실행할 때는 잘 됐는데, jar 파일 실행하니깐 안돼...(멘붕)'

p.s. 우리는 에러 문구를 잘 해석하고 그에 맞게 대응하면 된다!

※에러 내용: /error에 대한 명시적인 것이 없어요 ㅠㅠ 라는 의미.

->요약하자면, IDE(main문 돌리는 것)에는 /error 경로에 대한 것을 자동으로 제공해주지만, JAR 파일 빌드하고 실행할 때는 이런 거 안해주니, 너가 직접해라!!

<해결책>

1. @controllerAdvice를 통해 error.html 출력하게 하기!
->@controllerAdvice는 모든 예외(에러)에 대해 전역적으로 처리하는 기능을 가지고 있다! 이를 이용해서 /error 페이지를 대신 처리해주는 것이다.

->demo 폴더 밑에 controller 폴더 하나 더 만들고(필수는 아님), 여기에 전역변수핸들러 자바 파일 하나 추가.
->코드의 자세한 내용은 주석 참고!

2. error에 해당하는 error.html 만들기

->error.html은 resources/templates 폴더에 만들기!

->코드의 자세한 내용은 주석 참고!

3. pom.xml에 thymeleaf dependency 추가하기!

->처음에 이거 추가 안해서 1,2번 완료했어도 작동이 안됐었음.
->thymeleaf는 view template engine이라고 함. 즉, error.html을 작성했는데, 이거에 관련한 dependency가 없으므로, 제대로 작동이 안됐던 거 였음.

4. mvn clean install로 빌드 다시하기!

->빌드를 새로 안하면, 웹에 적용되지 않는다. -> 즉, 업데이트가 안됨. 웹 뿐만 아니라, dependencies 등 다른 것들도 업데이트가 안된다.
->또한, mvn은 mvnw 파일로 작동하므로, ls,cd 명령어로 현재 디렉토리 잘 알고 있어야 함.

->이런 에러 나면, 디렉토리 ls 확인해주기!

cf.) ctrl+c로 터미널에서 java -jar 실행 종료 시킬 수 있음.

5.완성!!

->${message} 그대로 나오는 이유는, 해당 에러 설정이 없어서 그럼.(문제 x)


Dependency Management

-> dependency management의 장점: pom.xml 파일의 dependencyManagement에서 버전만 잘 기입해주면, 나중에 버전 업그레이드 해도 dependencies들은 dependencyManagement에 의해 자동으로 업데이트 되니 굉장히 편리하다.

-> 마지막 줄 'When you upgrade ~' 이 부분이 위에 해당되는 내용임.


boot version

*스냅샷,M버전,RC 버전은 비정식 버전이라고 생각하면 됨. GA가 정식 버전임.
->따라서, GA 버전 외에 비정식 버전은 Maven 중앙 저장소에 올라가지 않으므로, repository를 따로 만들어야 한다.(밑에 사진 참고)


cf.) 자바 -> 오버라이딩 vs 오버로딩

p.s. 잘 생각이 안나서 ㅎㅎ... 다시 정리해봄.


Maven Plugin

->Maven Plugin은 build를 해주는 역할임. 즉, 실행 가능한 jar 파일을 만들어 주는 것이다.


profile
통합형 개발자. 기획부터 개발, 자동화까지. 문제를 구조적으로 이해하고, AI를 능동적으로 활용해 본질적인 해결책을 제시하는 사람입니다.

0개의 댓글