anchor.diff:  
   Whilst Kotlin's JVM-friendly design is generally frictionless with Spring,
   this specific Kotlin feature can prevent the application from starting, if this fact is not taken in
  -consideration. This is because Spring beans are normally proxified with CGLIB
  +consideration. This is because Spring beans are normally proxied by CGLIB
   - such as `@Configuration` classes - which need to be inherited at runtime for technical reasons.
   The workaround was to add an `open` keyword on each class and member
  -functions of Spring beans proxified with CGLIB such as `@Configuration` classes, which can
  -quickly become painful and is against Kotlin principle to keep code concise and predictable.
  +functions of Spring beans proxied by CGLIB such as `@Configuration` classes, which can
  +quickly become painful and is against the Kotlin principle of keeping code concise and predictable.
   
   Fortunately, Kotlin now provides a
   https://kotlinlang.org/docs/reference/compiler-plugins.html#kotlin-spring-compiler-plugin[`kotlin-spring`]
  
positive.code: 
  [NOTE]
  ====
  As of Spring Framework 4.3, classes with a single constructor have its parameters
  automatically autowired, that's why there is no need for `@Autowired constructor`
  in the example shown above.
  ====
  
  If one really needs to use field injection, use the `lateinit var` construct,
  
negative.code: [[spring-projects-in-kotlin]]
  == Spring projects in Kotlin
  
  This section provides focus on some specific hints and recommendations worth
  knowing when developing Spring projects in Kotlin.
  
  === Final by default
  