動的プロキシの手動構成
ネイティブ実行可能ファイルのビルド時に動的プロキシ・クラスを生成するには、それらによって実装されるインタフェースのリストを指定します。ネイティブ・イメージには、次の2つのオプションがあります:
-H:DynamicProxyConfigurationFiles=<comma-separated-config-files>
-H:DynamicProxyConfigurationResources=<comma-separated-config-resources>
これらのオプションでは、構造が完全修飾インタフェース名の配列の配列であるJSONファイルが受け入れられます。たとえば:
[
{ "interfaces": [ "java.lang.AutoCloseable", "java.util.Comparator" ] },
{ "interfaces": [ "java.util.Comparator" ] },
{ "interfaces": [ "java.util.List" ] }
]
ノート: 指定するプロキシ・インタフェースの順序は重要です。
Proxy
クラスに対する2つのリクエストで、インタフェースの組合せが同じでも順序が異なる場合は、2つの異なる動作が発生します(詳細は、Class Proxy
を参照してください)。
java.lang.reflect.Proxy
APIでは、ユーザー指定のインタフェースを実装しない動的プロキシを作成することもできます。この場合、生成された動的プロキシ・クラスではjava.lang.reflect.Proxy
のみが実装されます。