相关疑难解决方法(0)

为什么不允许导出整个模块?

在Java 9的模块声明中有2个结构:

exports com.foo;
Run Code Online (Sandbox Code Playgroud)

opens com.foo;
Run Code Online (Sandbox Code Playgroud)

exports赠款编译时访问,同时opens允许运行时访问,如反射和资源.

opens有一个宽容exports,你可以将整个模块定义为open,结果与显式打开每个包相同:

open module com.mod {
Run Code Online (Sandbox Code Playgroud)

但是没有相似的结构

exported module com.mod {
Run Code Online (Sandbox Code Playgroud)

我的问题:为什么会这样; 有什么决定允许一次打开整个模块而不是出口?

java java-platform-module-system java-9 java-module module-info

15
推荐指数
1
解决办法
758
查看次数

module-info.java'opens'语句可以包含一个包和所有子包吗?

我有一个module-info.java看起来像的文件 -

module foo.microservice {
    requires spring.core;
    requires spring.beans;
    requires spring.context;
    requires java.sql; // required for Spring Annotation based configuration :(

    opens foo.microservice.configuration to spring.core;
    opens foo.microservice.internal.services to spring.beans;
    opens foo.microservice.internal.controllers to spring.beans;

    exports foo.microservice.configuration;
    exports foo.microservice.controllers;
    exports foo.microservice.models;
    exports foo.microservice.services;
}
Run Code Online (Sandbox Code Playgroud)

我希望有可能允许Spring访问所有内部包,而无需将每个包显式添加到module-info.java.

有没有办法让一个更通用的opens语句允许所有我的内部包(和子包)可访问spring.beans

java spring java-9 module-info

8
推荐指数
2
解决办法
1588
查看次数