• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

module-info.java’open’语句是否可以包含一个包和所有的子包?

java 来源:TK. 4次浏览

我有一个module-info.java文件看起来像 -module-info.java‘open’语句是否可以包含一个包和所有的子包?

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; 
} 

我希望,有可能允许Spring来访问所有内部包而不明确地将每一个到module-info.java

有没有办法让更通用的opens声明允许我所有的内部包(和子包)可以被spring.beans访问?


===========解决方案如下:

目前国内还没有,因为JLS defines a module declaration作为指令的列表,其中每个指令有以下语法:

ModuleDirective: 
    requires {RequiresModifier} ModuleName ; 
    exports PackageName [to ModuleName {, ModuleName}] ; 
    opens PackageName [to ModuleName {, ModuleName}] ; 
    uses TypeName ; 
    provides TypeName with TypeName {, TypeName} ; 

同样的语法都同时适用于exportsopens:没有允许使用通配符的包名。也许这可能会在未来得到改善,但我认为这将是一种不好的做法,类似于在进口报表中使用这种通配符的不良做法。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)