Kotlin

A Semantic Logger for JVM Languages

This little library is inspired by the talk Observability in einer Microservice Welt held on Berlin Expert Days 2018 by Andreas Weigel and Jakob Fels. If you prefer to have some semantic to your logging and improve code readability you can use the SemanticLogger and its SemanticLoggerFactory which adds a thin layer around Slf4j. The SemanticLoggerFactory can be used like the Slf4j LoggerFactory to create a new Logger by class, name or a delegateLogger:
Read more

Building a Spring Boot 2 Auto-Configuration and Starter with Kotlin and Gradle

A concept that makes Spring Boot very powerful are its Starters and Auto-Configuration. It enables the automatic inclusion of dependencies and configuration or initialization based on several conditions. Recently I have been looking for a tutorial or “best practice” on how to use Gradle to build a custom starter. Since I was unable to find an example I ended up writing my own. I also added some Kotlin into the mix.
Read more

Using Jib to Build Docker Images for Spring Boot 2 Applications

If you want to create a Docker image from your Spring Boot 2 application you can use various plugins for Gradle or Maven. They all have in common that the application itself will be added as a single layer containing the full jar including all dependencies. For a typical Spring Boot 2 application this means, that for each build an image layer of at least 60MB has to be pushed to the registry.
Read more

Using Kotlin "data class" in bi-directional JPA relations

Data classes in Kotlin provide an easy way to implement entity beans for JPA without a lot of boilerplate code. This also includes toString(), hashCode() and equals() methods. However when you are modelling a bi-directional relationship between to entities you run into trouble since the toString() methods of both entities will call each other recursively ending in a StackOverflowException eventually. @Entity data class Child( @Id @GeneratedValue val id: Long? = null, val name: String, @ManyToOne val parent: Parent?
Read more

Kotlin, Spring Boot and Angular 4

This weekend I have been tinkering around with Kotlin, Spring Boot and Angular 4. I experienced how to combine everything in a multi-project using Gradle as a build tool. As I’m getting more into Kotlin I like it more and more. Especially the lack of a lot of boilerplate code is very refreshing. I still have to improve on the overall style but I will definitely use Kotlin more in the future.
Read more

Kotlin Koans

Kotlin is an interesting language originally invented by JetBrains. Also you may be tempted to say that it’s a “new” language it’s in development for some time now and has already reached a decent level of maturity. I’ve became interested in Kotlin when it was first officially announced by JetBrains a while ago. Unfortunately I haven’t had much time to look into it. At the moment Kotlin gains more and more attention by developers.
Read more