新着情報TOP > 자바 모듈 예제

자바 모듈 예제

모듈이 사용하는 서비스를 사용 지시문과 함께 지정합니다. javafx 프로젝트를 응용 프로그램 모듈로 변환하는 동안 문제를 해결하는 방법을 보여 주며 이제 my.module은 런타임과 module.name 대한 컴파일 타임 종속성을 모두 가지고 있습니다. 그리고 그게 다야! 우리는 매우 간단하지만 그럼에도 불구하고 모듈 형 Hello-World 응용 프로그램을 만들고 성공적으로 빌드하고 출시했습니다. 이제 종속성 및 내보내기와 같은 메커니즘이 작동하는 것을 볼 수 있는 약간 덜 사소한 예제로 전환할 차례입니다. 그러나 코드를 가져오는 모든 모듈이 이러한 추가 `전이적` 종속성을 가져오거나 작동하지 않는지 확인해야 합니다. JDK 바이너리는 점점 커지고 있습니다. 새로운 모듈 시스템의 가장 큰 장점 중 하나는 JDK와 JRE가 필요한 경우 축소하기 쉬운 작은 모듈로 나뉩니다. 또한 JDK 폴더에 Java 9의 JRE 폴더가 포함되어 있지 않습니다. Java 9에 새 폴더 jmods가 추가되었습니다. JPMS의 기본 구성 블록은 모듈 (놀라움!)입니다. JA와 마찬가지로 형식 및 리소스에 대한 컨테이너입니다. 그러나 JA와 는 달리, 그들은 추가 특성을 가지고 있습니다 – 이들은 가장 근본적인 것들입니다 : 나는 JPMS의 실제 사용에 대한 몇 가지 연구를 직접 했습니다.

그리고 나는 몇 가지에 대해 정말 걱정하고 있습니다. 우선. 지금까지는 WAR 파일로 패키징되어 서블렛 컨테이너에 배포된 응용 프로그램(JPMS 측면에서)을 변조하는 것은 불가능합니다(참조: https://stackoverflow.com/questions/46497172/is-java-9-modularity-for-war-files-as-well) 두 번째, “우리는 우리는 JAR 파일 당 하나의 모듈을 가질 수 있기 때문에 하지만 조심 해야 합니다.” – 그래서 어떻게 가능 하 게 지방 항아리 스프링 부팅 응용 프로그램을 모듈화 수? 그리고 서비스, 즉 사용, 제공. 그들은 기본적으로 자바 서비스 로더 메커니즘의 확장이다. 그들은 어떤 식 으로든 번역합니까 … 자세히 보기 » 기본적으로 모듈은 다른 모듈에 API를 노출하지 않습니다. 이 강력한 캡슐화는 처음에 모듈 시스템을 만드는 주요 동기 중 하나였습니다. 위의 출력에서 볼 수 있듯이 JDK는 많은 모듈과 함께 제공됩니다. java.base 모듈은 다른 모든 모듈의 기본 모듈입니다.

– Xbootclasspath / p가 제거되었으며 모듈 교체는 모듈의 클래스를 재정의하는 패치 모듈 옵션입니다. 또한 모듈의 내용을 보강하는 데 사용할 수 있습니다. –patch-module 옵션은 javac에서 지원하여 모듈의 “마치” 부분을 컴파일합니다. $JAVA_HOME/jmods는 java.base.jmod 및 기타 표준 및 JDK 모듈을 포함하는 디렉토리입니다. 지금까지 배운 내용으로 응용 프로그램을 단일 모듈로 구성하는 방법을 이미 알고 있습니다. 먼저 프로젝트 루트에서 모듈 선언 모듈-info.java를 만듭니다. 모듈 설명자의 생성 후, 우리는 간단한 hello 세계 클래스를 작성합니다,이 폴더에 갈 필요가 : 우리는 또한 내보내기모듈 설명기를 가질 수 있으며 절이 필요합니다. 아래 예 : 모듈을 설정하려면 module-info.java라는 패키지의 루트에 특수 파일을 배치해야합니다.

빌드 파일을 설정할 때 프로젝트의 각 모듈을 별도의 jar로 번들로 묶어야 합니다. 만일의 경우에 대비하여 모듈에 모든 전이적 종속성이 요구되는 대신 사용 지시문을 사용하여 모듈 경로에 필요한 인터페이스를 추가합니다.