gpt4 book ai didi

java - module-info.java 'opens' 语句是否可以包含包和所有子包?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:47:59 26 4
gpt4 key购买 nike

我有一个 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;
}

我希望有可能允许 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:包名称中不允许使用通配符。也许将来可以改进,但我认为这是一种不好的做法,类似于在 import 语句中使用此类通配符的坏做法。

关于java - module-info.java 'opens' 语句是否可以包含包和所有子包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47866761/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com