The default qualifier for classes and member functions isĀ finalĀ in Kotlin unlike Java (where default isĀ open)
This means that by default classes and their members are not open for inheritance or overriding
However frameworks like Spring requires classes to be open for certain functionalities like Spring AOP
While one can add the open qualifier before each and every single class and method that is annotated with one of the Spring annotations, the ākotlin-springā plugin automatically opens classes and methods annotated or meta-annotated with Spring annotations.