7.5. 리플렉션에 대한 클래스 등록
기본적으로 동적 리플렉션은 기본 모드에서 사용할 수 없습니다. 반사 액세스가 필요한 클래스는 컴파일 타임에 리플렉션을 위해 등록되어야 합니다.
대부분의 경우 Quarkus 확장이 리플렉션이 필요한 클래스를 감지하고 자동으로 등록할 수 있기 때문에 애플리케이션 개발자는 주의할 필요가 없습니다.
그러나 경우에 따라 Quarkus 확장에서 일부 클래스를 누락할 수 있으며 애플리케이션 개발자가 등록할 수 있습니다. 이를 수행하는 방법에는 두 가지가 있습니다.
-
@io.quarkus.runtime.annotations.RegisterForReflection주석은 사용되는 클래스를 등록하거나target속성을 통해 타사 클래스를 등록할 수도 있습니다. application.properties의quarkus.camel.native.reflection옵션:quarkus.camel.native.reflection.include-patterns = org.apache.commons.lang3.tuple.* quarkus.camel.native.reflection.exclude-patterns = org.apache.commons.lang3.tuple.*Triple이러한 옵션이 제대로 작동하려면 선택한 클래스를 포함하는 아티팩트에 Jandex 인덱스('META-INF/jandex.idx')를 포함하거나 'quarkus.index-dependency.*' 옵션을 사용하여 인덱싱해야 합니다. 예를 들어 'application.properties' -
quarkus.index-dependency.commons-lang3.group-id = org.apache.commons quarkus.index-dependency.commons-lang3.artifact-id = commons-lang3