我们正在建立一个服务。它必须从文件中读取config。我们目前正在使用YAML和Jackson来反序列化YAML。我们有一种情况,我们的YAML文件需要继承/扩展另一个(多个)YAML文件。例如,类似于:
extends: base.yaml
appName: my-awesome-app
...
因此,部分配置存储在base.yaml
中。是否有任何库对此提供支持?如果它允许从多个文件继承,则会加分。我们可以改为使用JSON而不是YAML。
JSON和YAML都不具备包含文件的能力。无论您做什么,都是一个预处理步骤,您将把base.yaml
和实际文件放在一起。
一种粗略的方法是:
#include base.yaml
appName: my-awesome-app
这是你的档案。加载时,首先读取第一行,如果它以#include
开头,则将其替换为所包含文件的内容。您需要递归地执行此操作。这基本上是C预处理器对C文件和包含的操作。
private Node preprocess(final Reader myInput) {
final Yaml yaml = new Yaml();
final Node node = yaml.compose(myInput);
processIncludes(node);
return node;
}
private void processIncludes(final Node node) {
if (node instanceof MappingNode) {
final List<NodeTuple> values = ((MappingNode) node).getValue();
for (final NodeTuple tuple: values) {
if ("!include".equals(tuple.getKeyNode().getTag().getValue())) {
final String includedFilePath =
((ScalarNode) tuple.getValueNode()).getValue();
final Node content = preprocess(new FileReader(includedFilePath));
// now merge the content in your preferred way into the values list.
// that will change the content of the node.
}
}
}
}
public String executePreprocessor(final Reader source) {
final Node node = preprocess(source);
final StringWriter writer = new StringWriter();
final DumperOptions dOptions = new DumperOptions()
Serializer ser = new Serializer(new Emitter(writer, dOptions),
new Resolver(), dOptions, null);
ser.open();
ser.serialize(node);
ser.close();
return writer.toString();
}
!include : base.yaml
appName: my-awesome-app
得到的字符串可以是Jackson的输入。
有没有办法在springfox swagger(2.7.0)中暴露遗传/多态性?我知道昂首阔步规范支持所有的。springfox支持这个吗?下面是示例域模型。 若控制者归还动物,那个么《大摇大摆》合同不会暴露猫或狗。它只返回带有属性的动物。
本文向大家介绍C#支持多重继承么?相关面试题,主要包含被问及C#支持多重继承么?时的应答技巧和注意事项,需要的朋友参考一下 类之间不支持,接口之间支持。类对接口叫做实现,不叫继承。 类是爹、接口是能力,能有多个能力,但不能有多个爹。
我在阅读Java8中的interface时遇到了这个主题,在有些情况下,我们使用default或static关键字在interface中定义方法,允许下一个子程序重新定义相同的方法或实现它。那是不是意味着多重继承?还有一个问题,我发现,返回类型必须是协变类型,否则编译问题,这意味着它仍然不支持多重继承?我们能说java支持多重继承吗?让我知道关于这个话题的更多细节。
从2.7.0开始,SpringFox Swagger不支持继承: https://github.com/springfox/springfox/issues/1983 我有一个应用程序,它依赖于swagger支持继承这一事实,但仍然需要将库更新到2.8.0版本。 真的有可能以某种方式(甚至是肮脏的方式)为继承提供向后兼容性吗? 真的非常感谢任何帮助,谢谢
本文向大家介绍请说明Java是否支持多继承?相关面试题,主要包含被问及请说明Java是否支持多继承?时的应答技巧和注意事项,需要的朋友参考一下 考察点:JAVA多继承 Java中类不支持多继承,只支持单继承(即一个类只有一个父类)。 但是java中的接口支持多继承,,即一个子接口可以有多个父接口。(接口的作用是用来扩展对象的功能,一个子接口继承多个父接口,说明子接口扩展了多个功能,当类实现接口时,
例如:案例1:我们创建的每个Java类是否都将扩展类,如果是这样,那么为什么我们能够扩展一个类到我们的类可能是愚蠢的问题,刚刚记住了,我发布这个问题