Defining dependency between modules

To use HelloApp, we need to export the package com.packt.helloapp from the helloApp  module and include the helloApp module in the helloClient module:

module com.packt.helloapp {
exports com.packt.helloapp;
}

module com.packt.hello.client {
requires com.packt.helloapp;
}

From the preceding code, the first module descriptor, the exports keyword, indicates that packages are available to export to other modules. If a package is explicitly exported, then it is only accessible by other modules. If in a same module some packages are not exported, then it cannot be accessed by other modules.

The second module descriptor uses the requires keyword to indicate that the module is dependent on the com.packt.helloapp module,  and this is called Dependency Injection in Java 9 Module.

Finally, the HelloClient class will be as follows:

HelloClient.java

package com.packt.hello.client;

import com.packt.HelloApp;

public class HelloClient {

public static void main (String arg[]) {

HelloApp helloApp = new HelloApp();
System.out.println(helloApp.sayHelloJava());

}

}

After creating two modules, the following will be the final tree structure:

But wait, we only wrote the code and have not compiled and run it yet. Let's do that in the next section.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.128.205.21