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

我有一个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:没有允许使用通配符的包名。也许这可能会在未来得到改善,但我认为这将是一种不好的做法,类似于在进口报表中使用这种通配符的不良做法。

以上是 module-info.java'open'语句是否可以包含一个包和所有的子包? 的全部内容, 来源链接: utcz.com/qa/262636.html

回到顶部