Class ReferencedFieldValueResolver

java.lang.Object
org.apache.dubbo.config.spring6.beans.factory.aot.ReferencedFieldValueResolver

public final class ReferencedFieldValueResolver extends Object
Resolver used to support the autowiring of fields. Typically used in AOT-processed applications as a targeted alternative to the ReferenceAnnotationBeanPostProcessor.

When resolving arguments in a native image, the Field being used must be marked with an introspection hint so that field annotations can be read. Full invocation hints are only required if the resolveAndSet(RegisteredBean, Object) method of this class is being used (typically to support private fields).

  • Method Details

    • forField

      public static ReferencedFieldValueResolver forField(String fieldName)
      Create a new ReferencedFieldValueResolver for the specified field where injection is optional.
      Parameters:
      fieldName - the field name
      Returns:
      a new ReferencedFieldValueResolver instance
    • forRequiredField

      public static ReferencedFieldValueResolver forRequiredField(String fieldName)
      Create a new ReferencedFieldValueResolver for the specified field where injection is required.
      Parameters:
      fieldName - the field name
      Returns:
      a new ReferencedFieldValueResolver instance
    • withShortcut

      public ReferencedFieldValueResolver withShortcut(String beanName)
      Return a new ReferencedFieldValueResolver instance that uses a direct bean name injection shortcut.
      Parameters:
      beanName - the bean name to use as a shortcut
      Returns:
      a new ReferencedFieldValueResolver instance that uses the shortcuts
    • resolve

      public <T> void resolve(org.springframework.beans.factory.support.RegisteredBean registeredBean, org.springframework.util.function.ThrowingConsumer<T> action)
      Resolve the field for the specified registered bean and provide it to the given action.
      Parameters:
      registeredBean - the registered bean
      action - the action to execute with the resolved field value
    • resolve

      @Nullable public <T> T resolve(org.springframework.beans.factory.support.RegisteredBean registeredBean, Class<T> requiredType)
      Resolve the field value for the specified registered bean.
      Parameters:
      registeredBean - the registered bean
      requiredType - the required type
      Returns:
      the resolved field value
    • resolve

      @Nullable public <T> T resolve(org.springframework.beans.factory.support.RegisteredBean registeredBean)
      Resolve the field value for the specified registered bean.
      Parameters:
      registeredBean - the registered bean
      Returns:
      the resolved field value
    • resolveObject

      @Nullable public Object resolveObject(org.springframework.beans.factory.support.RegisteredBean registeredBean)
      Resolve the field value for the specified registered bean.
      Parameters:
      registeredBean - the registered bean
      Returns:
      the resolved field value
    • resolveAndSet

      public void resolveAndSet(org.springframework.beans.factory.support.RegisteredBean registeredBean, Object instance)
      Resolve the field value for the specified registered bean and set it using reflection.
      Parameters:
      registeredBean - the registered bean
      instance - the bean instance