Interviews with our VCIs: Kristof Van Sever

Our trainers are the beating heart of The Campus. Even though they are such an important part of our training center, they sometimes tend to stay in the background. Time to change that!

We decided to interview all our VCIs (VMware Certified Instructors) to highlight their knowledge of and experience with the Spring Framework. The first VCI to take the stage is Kristof Van Sever, IT Consultant at Faros.

Kristof, when was the first time you came into contact with the Spring framework? And what was the context in which you started using Spring?

“The first time I came into contact with Spring was in 2011. I started working with Spring 3, that’s already a number of Spring generations ago. At the time, you still had to use a lot of XML, whereas the newer versions of Spring rely upon JavaConfig and annotation-based configuration. In college, we mainly worked with Java to build applications. At a certain point, I started working with Spring for a few of my own side projects because of the advantages Spring had to offer in terms of developing a web application.”

What was your first impression of the Spring Framework at the time?

“My impression was that Spring makes your life easier, mainly because of the implementation of Dependency Injection, but also because of the configuration for setting up web applications that Spring already provides for you. The only disadvantage in my opinion was the fact that you still needed quite some XML, and the further configuration that was needed to get your application up and running. Both of these things have improved a lot throughout the years, because Spring switched to newer ways of configuration instead of XML.”

How do you experience working with Spring during your day-to-day job? Do you see certain advantages or disadvantages?

“I have been using Spring in a lot of different projects at different clients throughout the years, and I mostly see a lot of advantages. The Dependency Injection I mentioned before makes it a lot easier to build large applications in an enterprise context. Next to that, Spring does not only revolve around Dependency Injection. It has a wide range of other libraries within its ecosystem, which make it a lot easier to build a web-based application or when interfacing with external dependencies, like databases or messaging systems, for example. On top of that, Spring Boot changed and improved that world heavily as well, because it does a lot of the configuration for you. 90% of the Spring Boot applications work out of the box, and the other 10% of the applications only have a minimal number of configurations that need to be adjusted.”

If you had to pick a favourite feature of the Spring Framework, which one would it be?

Spring Boot Actuator. The actuators help you make your application more accessible for DevOps tooling. It provides a number of REST calls you can make to an API which reveal information about your application itself. This information can then be used by the platform on which you will be deploying your application. It includes data like your application’s version number and the build date, but also things like your application’s health, configuration, liveness and readiness indicators for Kubernetes. You can also expose certain metrics you want to track during your application’s runtime which can then be used by the platform, for example to make a dashboard with graphs that give you an idea of how hard the application is currently working, or that tells you if there are certain problems with the application that need to be addressed. I certainly think that’s an advantage, mainly because it leads to some sort of standardization.”

How do you see the Spring Framework evolve in the future?

“A lot has been happening around Kubernetes lately, such as better support for liveness and readiness indicators, among others. The integration with Cloud Native Buildpacks and creation of publication containers has improved as well. I suspect Spring will start exploring an integration with GraalVM to create native images. I certainly think they will pay attention to native compilation in the future.”

Can you give us a useful tip for people who want to get started with Spring?

“Use the Spring Initializr! The Initializr allows you to choose your application’s language: Java, Kotlin or Groovy. You can also indicate if you want to create your project in Maven or Gradle, you can choose which version of Spring Boot you want to use, and you can select all the dependencies you would like to have. For example, if you want to build a dev application that uses MongoDB as a database, you can type a MongoDB dependency in the Initializr, and it will suggest which Spring Boot starters you can use. So it’s really a tool that helps you if you want to start a specific Spring project. The Initializr will make your life a lot easier, and there’s even a dark mode option available! Very important in every application nowadays.” (laughs)

Before we wrap up, could you give one last tip for people who have worked with Spring before, but want to take their knowledge to the next level?

“Attend the Spring Core training at The Campus!” (laughs) “I don’t want to brag, but it’s true. The reason I say this is because the training gives a really good introduction into Spring’s basic concepts like Dependency Injection and Spring Boot, and it gives participants an overview of a broad spectrum of other typical sub-frameworks and libraries you use in your Spring applications in an enterprise context. But it also dives deeper into certain subjects. For example: how does Independency Injection work exactly? How does Spring add extra behaviour — like managing transactions — in a transparent way through proxy beans? This in-depth coverage is the reason why I would recommend the training to more experienced Spring application developers as well.”

The Campus, Charlotte Van Rompaey 3 May, 2021
Share this post

What is React? A short introduction to React and its advantages