gpt4 book ai didi

java - 通过yaml配置java类对象列表

转载 作者:太空宇宙 更新时间:2023-11-04 14:32:14 24 4
gpt4 key购买 nike

我正在使用 dropwizard 框架,该框架使用 Yaml 进行配置。我想在配置文件中指定类名。有没有一种方法可以让 Yaml 将其解析为类对象,或者我必须使用字符串来执行此操作?

class Config {

.........

List<Class<?> resourceClasses;
}

YAML file

#resource classes
resourceClasses :
- com.abc.StoresResource
- com.abc.MerchantResource

最佳答案

您只是在寻找一种便捷的方式来注册资源,还是确实想在 YAML 配置中配置资源?如果是前者,我会这样做:

for (ClassInfo classInfo: ClassPath.from(getClass().getClassLoader()).getTopLevelClasses("com.abc")) {
environment.jersey().register(i.getInstance(classInfo.load()));
}

如果是后者,您就必须自己解析这些字符串。我认为 YAML 配置不会为您做到这一点。像这样的事情会起作用吗:

class Config {
List<Class<?>> resourceClasses = new ArrayList<Class<?>>();

@JsonProperty("resourceClasses")
public void setResourceClasses(Collection<String> classNames) throws ClassNotFoundException {
for (String className : classNames) {
resourceClasses.add(Class.forName(className));
}
}

}

关于java - 通过yaml配置java类对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26001175/

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