anchor.diff:  The following list categorizes the pending issues related to Spring and Kotlin support:
   
   * Spring Framework
  -** https://jira.spring.io/browse/SPR-16057[Unable to use WebTestClient with mock server in Kotlin]
  -** https://jira.spring.io/browse/SPR-15942[Support null-safety at generics, varargs and array elements level]
  -** https://jira.spring.io/browse/SPR-15413[Add support for Kotlin coroutines]
  +** https://github.com/spring-projects/spring-framework/issues/20606[Unable to use WebTestClient with mock server in Kotlin]
  +** https://github.com/spring-projects/spring-framework/issues/20496[Support null-safety at generics, varargs and array elements level]
  +** https://github.com/spring-projects/spring-framework/issues/19975[Add support for Kotlin coroutines]
   * Spring Boot
   ** https://github.com/spring-projects/spring-boot/issues/8762[Allow `@ConfigurationProperties` binding for immutable POJOs]
  -** https://github.com/spring-projects/spring-boot/issues/1254[Allow `@ConfigurationProperties` binding on interfaces]
   ** https://github.com/spring-projects/spring-boot/issues/8115[Expose the functional bean registration API via `SpringApplication`]
   ** https://github.com/spring-projects/spring-boot/issues/10712[Add null-safety annotations on Spring Boot APIs]
   ** https://github.com/spring-projects/spring-boot/issues/9486[Use Kotlin's bom to provide dependency management for Kotlin]
   * Kotlin
   ** https://youtrack.jetbrains.com/issue/KT-6380[Parent issue for Spring Framework support]
   ** https://youtrack.jetbrains.com/issue/KT-5464[Kotlin requires type inference where Java doesn't]
  -** https://github.com/Kotlin/KEEP/issues/79[Better generics null-safety support]
   ** https://youtrack.jetbrains.com/issue/KT-20283[Smart cast regression with open classes]
   ** https://youtrack.jetbrains.com/issue/KT-14984[Impossible to pass not all SAM argument as function]
  -** https://youtrack.jetbrains.com/issue/KT-19592[Apply JSR 305 meta-annotations to generic type parameters]
  -** https://youtrack.jetbrains.com/issue/KT-18398[Provide a way for libraries to avoid mixing Kotlin 1.0 and 1.1 dependencies]
   ** https://youtrack.jetbrains.com/issue/KT-15125[Support JSR 223 bindings directly via script variables]
  -** https://youtrack.jetbrains.com/issue/KT-15467[Support all-open and no-arg compiler plugins in Kotlin Eclipse plugin]
  +** https://youtrack.jetbrains.com/issue/KT-6653[Kotlin properties do not override Java-style getters and setters]
  +
  
positive.code: [[kotlin-getting-started]]
  == Getting Started
  
  This section describes the fastest way to get started with a project that combines
  Kotlin and the Spring Framework.
  
  
  
  === Using `start.spring.io`
  
  The easiest way to start a new Spring Framework 5 project in Kotlin is to create a new Spring
  Boot 2 project on https://start.spring.io/#!language=kotlin[start.spring.io].
  
  You can also create a standalone WebFlux project, as described in
  https://spring.io/blog/2017/08/01/spring-framework-5-kotlin-apis-the-functional-way[this blog post].
  
  
  
  === Choosing the Web Flavor
  
  
negative.code: 
  === Testing
  
  This section addresses testing with the combination of Kotlin and Spring Framework. The recommended testing framework
  is https://junit.org/junit5/[JUnit 5], as well as https://mockk.io/[Mockk] for mocking.
  
  
  ==== Constructor injection
  
  As described in the <<testing#testcontext-junit-jupiter-di#spring-web-reactive,dedicated section>>, JUnit 5 allows
  constructor injection of beans which is pretty useful with Kotlin in order to use `val` instead of `lateinit var `.
  
  
  ====
  [source]
  ----
  @SpringJUnitConfig(TestConfig::class)
  class OrderServiceIntegrationTests(@Autowired val orderService: OrderService,
                                     @Autowired val customerService: CustomerService) {
  
      // tests that use the injected OrderService and CustomerService
  }
  ----
  ====
  
  You can also use `@Autowired` at constructor level to autowire all parameters.
  
  ====
  [source]
  ----
  @SpringJUnitConfig(TestConfig::class)
  class OrderServiceIntegrationTests @Autowired constructor(
  		val orderService: OrderService,
  		val customerService: CustomerService) {
  
      // tests that use the injected OrderService and CustomerService
  }
  ----
  ====
  
  
  ==== `PER_CLASS` Lifecycle
  