6.2. 모듈 종속성

모듈 종속성은 한 모듈이 작동하기 위해 하나 이상의 다른 모듈의 클래스가 필요함을 나타냅니다. JBoss EAP가 모듈을 로드할 때 모듈 클래스 로더는 해당 모듈의 종속성을 구문 분석하고 각 종속성의 클래스를 클래스 경로에 추가합니다. 지정된 종속성을 찾을 수 없는 경우 모듈이 로드되지 않습니다.

참고

모듈 및 모듈 클래스 로드 시스템에 대한 자세한 내용은 모듈 섹션을 참조하십시오.

배포된 애플리케이션(예: JAR 또는 WAR)은 동적 모듈로 로드되며, 종속성을 사용하여 JBoss EAP에서 제공하는 API에 액세스합니다.

종속성에는 명시적암시적 이라는 두 가지 유형의 종속성이 있습니다.

명시적 종속성
명시적 종속성은 구성 파일의 개발자가 선언합니다. 정적 모듈은 해당 module.xml 파일에서 종속성을 선언할 수 있습니다. 동적 모듈은 배포의 MANIFEST.MF 또는 jboss-deployment-structure. xml 배포 설명자에 종속성을 선언할 수 있습니다.
암시적 종속성

특정 조건 또는 메타 데이터를 배포에서 찾을 수 있는 경우 암시적 종속성은 JBoss EAP에서 자동으로 추가됩니다. JBoss EAP와 함께 제공되는 Jakarta EE API는 배포에서 암시적 종속성을 탐지하여 추가된 모듈의 예입니다.

jboss-deployment-structure.xml 배포 설명자 파일을 사용하여 특정 암시적 종속성을 제외하도록 배포를 구성할 수도 있습니다. 이는 애플리케이션이 암시적 종속성으로 추가하려고 할 특정 버전의 라이브러리를 번들할 때 유용할 수 있습니다.

선택적 종속성

명시적 종속성은 옵션으로 지정할 수 있습니다. 선택적 종속성을 로드하지 않으면 모듈이 로드되지 않습니다. 그러나 나중에 종속성을 사용할 수 있게 되면 모듈의 클래스 경로에 추가되지 않습니다. 모듈이 로드되면 종속성을 사용할 수 있어야 합니다.

종속성 내보내기

모듈의 클래스 경로에는 자체 클래스와 즉각적인 종속성만 포함됩니다. 모듈은 해당 종속성 중 하나의 종속성 클래스에 액세스할 수 없습니다. 그러나 모듈은 명시적 종속성을 내보내도록 지정할 수 있습니다. 내보낸 종속성은 내보내는 모듈에 종속된 모든 모듈에 제공됩니다.

예를 들어, Module A 는 Module B 에 따라 달라지며, Module B 는 Module C 에 따라 다릅니다. 모듈 A 는 모듈 B 의 클래스에 액세스할 수 있으며, 모듈 B 는 모듈 C 의 클래스에 액세스할 수 있습니다. 모듈 A 는 다음과 같은 경우가 아니면 모듈 C 의 클래스에 액세스할 수 없습니다.

  • 모듈 A 는 모듈 C 에 명시적 종속성을 선언합니다.
  • 모듈 B 는 모듈 C 에 대한 종속성을 내보냅니다.

글로벌 모듈

글로벌 모듈은 JBoss EAP가 모든 애플리케이션에 대한 종속성으로 제공하는 모듈입니다. 모든 모듈은 JBoss EAP의 글로벌 모듈 목록에 추가하여 전역적으로 만들 수 있습니다. 모듈을 변경할 필요가 없습니다.

자세한 내용은 Define Global Modules 섹션을 참조하십시오.