quarkus - 具有 json-b 和私有属性可见性的 quarkus
问题描述
在 json-b 中,我可以使用自定义的PropertyVisibilityStrategy
. 如果我使用以下内容,quarkus 的行为是什么:
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import javax.json.bind.config.PropertyVisibilityStrategy;
/**
* Enables private property visibility
* and disables method visibility for JSON-B processings.
*/
public final class PrivateVisibilityStrategy implements PropertyVisibilityStrategy {
@Override
public boolean isVisible(Field field) {
return true;
}
@Override
public boolean isVisible(Method method) {
return false;
}
}
然后在我可以使用的课程上
@JsonbVisibility(value = PrivateVisibilityStrategy.class)
public class User {
// only fields are used for json mappings because of "PrivateVisibilityStrategy"
..
}
问题:
quarkus 会在这种情况下使用反射吗(因为它必须使用字段访问)?
如果是,我应该避免在 quarkus 中出现这种情况以避免反射以提高性能吗?
我是否应该始终避免通过反射访问 quarkus 中的场?或者 quarkus 在幕后使用
java.lang.invoke.MethodHandles
这种情况吗?
解决方案
我能够使用这样的类来做到这一点:
@Singleton
public class JsonConfigurator implements JsonbConfigCustomizer {
public void customize(JsonbConfig config) {
config.withPropertyVisibilityStrategy(new PrivateVisibilityStrategy());
}
}
PrivateVisibilityStrategy
就像你发布的一样。
推荐阅读
- html - CSS 仅旋转边框
- python - 从python将单选按钮值插入oracle数据库时出错
- python - Prophet 模型预测负值
- typescript - 如何防止将属性添加到 TypeScript 中的空对象?
- python - Twython Twitter 帖子被截断
- java - Spring Cloud 为什么叫“云”?
- python - 用 Python 从爬取的网站中检测文本的语言
- javascript - 如何将 setTimeout() 与 React Hooks useEffect 和 setState 一起使用?
- python - 安装turtle库时出错
- html - 将复选框与标签左侧对齐