anchor.diff:  <<web-reactive#spring-web-reactive,Spring WebFlux>>.
   
   Spring WebFlux is recommended if you want to create applications that will deal with latency,
  -long-lived connections, o streaming scenarios or if you want to use the web functional
  +long-lived connections, streaming scenarios or if you want to use the web functional
   Kotlin DSL.
   
   For other use cases, especially if you are using blocking technologies such as JPA, Spring
  -MVC and its annotation-based programming model is a perfectly valid and fully supported choice.
  +MVC and its annotation-based programming model is the recommended choice.
   
   
   
  
positive.code: [source,kotlin,indent=0]
  ----
  	val context = GenericApplicationContext().apply {
  		beans().initialize(this)
  		refresh()
  	}
  ----
  ====
  
  NOTE: This DSL is programmatic, meaning it allows custom registration logic of beans
  through an `if` expression, a `for` loop, or any other Kotlin constructs.
  
  See https://github.com/sdeleuze/spring-kotlin-functional/blob/master/src/main/kotlin/functional/Beans.kt[spring-kotlin-functional beans declaration]
  for a concrete example.
  
  NOTE: Spring Boot is based on Java configuration and
  https://github.com/spring-projects/spring-boot/issues/8115[does not yet provide specific support for functional bean definition],
  but you can experimentally use functional bean definitions through Spring Boot's `ApplicationContextInitializer` support.
  See https://stackoverflow.com/questions/45935931/how-to-use-functional-bean-definition-kotlin-dsl-with-spring-boot-and-spring-w/46033685#46033685[this Stack Overflow answer]
  
negative.code: ====
  [source,kotlin,indent=0]
  ----
  	val myBeans = beans {
  		bean<Foo>()
  		bean<Bar>()
  		bean("bazBean") {
  			Baz().apply {
  				message = "Hello world"
  			}
  		}
  		profile("foobar") {
  			bean { FooBar(ref("bazBean")) }
  		}
  	}
  ----
  ====
  
  NOTE: This DSL is programmatic, meaning it allows custom registration logic of beans
  through an `if` expression, a `for` loop, or any other Kotlin constructs.
  
  You can then use this `beans()` function to register beans on the application context,
  as the following example shows:
  