Deploy시 Class의 load 우선순위 정리
2021. 10. 1. 15:29ㆍjava
728x90
반응형
Scenario
내 프로젝트에서 commons.jar 내부에 있는 commonController의 로직을 바꾸고 싶었다. 내 프로젝트 내부에서 새로 정의한다면 오버라이드 되지 않을까? 하고 생각해보았다.
Solution
class load scenario
예를 들어보자. 만약 내 프로젝트의 이름은 test이고 test 프로젝트 내부에서 a.jar에 대한의존성을 추가하였다.
a.jar 내부에있는 com.a.a 라는 class가 있었다.
test 프로젝트 내부에서 com.a.a 라는 경로와 똑같이 class를 만든다면 어느 class가 load가 될까?
-> 정답은 배포되었을시에 web-inf에 있는 classes 폴더에있는 것들이 최우선순위로 load 되고 그다음부터는 lib 내부에 있는 jar들이 알파벳 순서에따라 class가 loadㄷ가 된다.
참고사항: tomcat 실행시 java -verbose:class 옵션을주면 어느 jar에서 load 되었는지 알게해줌
+추가 공부내용: 배포될때 WEB-INF/classes 폴더는 classpath와 관계가 있으니 잘 확인해볼 것
728x90
반응형
'java' 카테고리의 다른 글
Guava Cache (구아바 캐시) (0) | 2022.05.24 |
---|---|
Windows, Amazon Corretto(OpenJDK) 17 설치하기 (0) | 2021.12.02 |
xwiki offline installation (0) | 2021.08.20 |
Java ClassLoader 훑어보기 (0) | 2021.08.20 |
module-info.java로 서로 다른 프로젝트의 패키지(클래스) 불러와 사용하기 (0) | 2021.08.19 |