在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中的字段进行访问?还是夸克在幕后这种情况下使用java.lang.invoke.MethodHandles
?
答案 0 :(得分:0)
我能够使用这样的类来做到这一点:
@Singleton
public class JsonConfigurator implements JsonbConfigCustomizer {
public void customize(JsonbConfig config) {
config.withPropertyVisibilityStrategy(new PrivateVisibilityStrategy());
}
}
PrivateVisibilityStrategy
就像您发布的内容。