Enum Class Around.ProxyTargetConstructorMode

All Implemented Interfaces:
Serializable, Comparable<Around.ProxyTargetConstructorMode>, Constable
Enclosing class:

public static enum Around.ProxyTargetConstructorMode extends Enum<Around.ProxyTargetConstructorMode>
When using Around.proxyTarget() on a Factory method if the returned bean features constructor arguments this can lead to undefined behaviour since it is expected with factory methods that the developer is responsible for constructing the object.

For example if the type accepts an argument of type String then there is no way for Micronaut to know what to inject as a value for the argument and injecting null is inherently unsafe.

The Around.ProxyTargetConstructorMode allows the developer decide if they wish to allow proxies to be constructed and if a proxy is allowed then Micronaut will either inject a bean if it is found or null if is not. For primitive types Micronaut will inject true for booleans and 0 for number types

  • Enum Constant Details

    • ERROR

      public static final Around.ProxyTargetConstructorMode ERROR
      Do not allow types with constructor arguments to be proxied. This is the default behaviour and compilation will fail.
    • WARN

      public static final Around.ProxyTargetConstructorMode WARN
      Allow types to be proxied but print a warning when this feature is used.

      In this case if a constructor parameter cannot be injected Micronaut will inject null for objects or false for boolean or 0 for any other primitive.

    • ALLOW

      public static final Around.ProxyTargetConstructorMode ALLOW
      Allow types to be proxied and don't print any warnings.
  • Method Details

    • values

      public static Around.ProxyTargetConstructorMode[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static Around.ProxyTargetConstructorMode valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      name - the name of the enum constant to be returned.
      the enum constant with the specified name
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null