Annotation Type Bean


@Target(METHOD) @Retention(RUNTIME) public @interface Bean
Marks methods on a @Factory bean that create dependencies.

See Factory.



 @Factory
 class Configuration {

   private final StartConfig startConfig;

   @Inject
   Configuration(StartConfig startConfig) {
     this.startConfig = startConfig;
   }

   @Bean
   Foo buildFoo() {
     ...
     return new Foo(...);
   }

   @Bean
   Bar buildBar(Foo foo, Bazz bazz) {
     ...
     return new Bar(...);
   }
 }
 
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    boolean
    Specify that the concrete instance of the bean is an AutoCloseable.
    Specify a method to be treated like a @PreDestroy
    Specify a method to be treated like a @PostConstruct
  • Element Details

    • initMethod

      Specify a method to be treated like a @PostConstruct
      Default:
      ""
    • destroyMethod

      Specify a method to be treated like a @PreDestroy
      Default:
      ""
    • autoCloseable

      boolean autoCloseable
      Specify that the concrete instance of the bean is an AutoCloseable. Use if your bean interface doesn't extend AutoCloseable but the concrete class implements it.
      Default:
      false