anchor.diff:  * https://github.com/sdeleuze/spring-kotlin-functional[spring-kotlin-functional]: standalone WebFlux + functional bean definition DSL
   * https://github.com/sdeleuze/spring-kotlin-fullstack[spring-kotlin-fullstack]: WebFlux Kotlin fullstack example with Kotlin2js for frontend instead of JavaScript or TypeScript
   * https://github.com/spring-petclinic/spring-petclinic-kotlin[spring-petclinic-kotlin]: Kotlin version of the Spring PetClinic Sample Application
  +* https://github.com/sdeleuze/spring-kotlin-deepdive[spring-kotlin-deepdive]: a step by step migration for Boot 1.0 + Java to Boot 2.0 + Kotlin
   
   
   
  
positive.code: === Annotation array attributes
  
  Kotlin annotations are mostly similar to Java ones, but array attributes - which are
  extensively used in Spring - behave differently. As explained in https://kotlinlang.org/docs/reference/annotations.html[Kotlin documentation]
  unlike other attributes, the `value` attribute name can be omitted and when it is an array
  attribute it is specified as a `vararg` parameter.
  
  To understand what that means, let's take `@RequestMapping`, which is one
  of the most widely used Spring annotations as an example. This Java annotation is declared as:
  
negative.code: 
  Spring Framework supports Kotlin 1.1+ and requires
  https://bintray.com/bintray/jcenter/org.jetbrains.kotlin%3Akotlin-stdlib[`kotlin-stdlib`]
  (or one of its variants like https://bintray.com/bintray/jcenter/org.jetbrains.kotlin%3Akotlin-stdlib-jre8[`kotlin-stdlib-jre8`]
  for Kotlin 1.1 or https://bintray.com/bintray/jcenter/org.jetbrains.kotlin%3Akotlin-stdlib-jdk8[`kotlin-stdlib-jdk8`] for Kotlin 1.2+)
  and https://bintray.com/bintray/jcenter/org.jetbrains.kotlin%3Akotlin-reflect[`kotlin-reflect`]
  to be present on the classpath. They are provided by default if one bootstraps a Kotlin project on
  https://start.spring.io/#!language=kotlin[start.spring.io].
  