About the course
Kotlin is a modern, expressive, and concise programming language that has become increasingly popular, particularly for server-side development, due to its excellent interoperability with Java, focus on safety (like null safety), and features that reduce boilerplate code. Spring Boot provides first-class support for Kotlin, allowing developers to leverage Kotlin's powerful features to build elegant, efficient, and robust applications with even greater ease than traditional Java. Spring Boot 3, built on Spring Framework 6 and requiring Java 17+ (which integrates seamlessly with Kotlin 1.6+ and later), enhances this experience further, enabling Kotlin developers to build modern, high-performance, and secure applications. This 4-day intensive hands-on training course provides a comprehensive deep dive into developing applications with Spring Boot 3 specifically using the Kotlin language, covering its core principles, key features, and seamless integration with the wider Spring ecosystem to build robust web, data-driven, and messaging-based applications.
The course begins with a thorough overview of the Spring and Spring Boot 3 ecosystem, exploring their motivations, the benefits of Spring Boot 3's auto-configuration and "opinionated" approach, and setting up modern Spring Boot 3 projects using Spring Initializr, Maven, and Gradle, all configured for Kotlin development. Participants will master the fundamental Spring concepts of Beans and Dependency Injection (DI), understanding the Spring Container and various modern configuration approaches using Annotations, JavaConfig, and Lambda expressions, with all examples and labs demonstrated using concise and expressive Kotlin syntax. A significant portion is dedicated to building different types of applications using Kotlin: creating web applications using Spring Web MVC, developing RESTful Services (including introducing modern client approaches like WebClient and RestClient, potentially leveraging Kotlin Coroutines for reactive scenarios), integrating with various data sources using Spring Data (covering JDBC, JPA/Hibernate, and NoSQL databases like MongoDB, making extensive use of Kotlin data classes for entities), and integrating Messaging capabilities using Spring JMS and technologies like RabbitMQ with Kotlin.
Furthermore, the course provides insight into Spring Boot 3 Internals, common customisation options, and the benefits of features like improved observability and native image support when developing with Kotlin. Participants will learn how to effectively Test Spring Boot 3 applications using the powerful Spring Boot Testing Framework and JUnit 5+, writing tests in Kotlin. Crucially, the course includes in-depth coverage of implementing robust application Security with Spring Boot 3 in Kotlin, focusing on the modern Spring Security 6+ configuration model and applying web and method-level security within Kotlin code, leveraging Kotlin's features for cleaner security configurations. The course concludes by exploring the Spring Boot Actuator for monitoring and managing Spring Boot 3 applications developed in Kotlin. Through extensive hands-on labs using Kotlin, attendees will gain practical experience building, configuring, testing, and securing a variety of applications with Spring Boot 3.
Instructor-led online and in-house face-to-face options are available - as part of a wider customised training programme, or as a standalone workshop, on-site at your offices or at one of many flexible meeting spaces in the UK and around the World.
-
- Explain the motivation behind Spring and Spring Boot, understand key Spring Boot 3 features
- Master the fundamental Spring concepts of Beans and Dependency Injection (DI), using Annotations, JavaConfig, and Lambda configurations with Kotlin syntax.
- Build web applications using Spring Web MVC in Spring Boot 3 with Kotlin.
- Develop RESTful Services with Spring Boot 3 and Kotlin, and consume REST services using modern clients like WebClient and RestClient, potentially leveraging Kotlin Coroutines.
- Integrate data access into Spring Boot 3 applications using Spring Data with Kotlin, covering JDBC, JPA/Hibernate, and NoSQL databases like MongoDB, effectively using Kotlin data classes.
- Integrate messaging capabilities into Spring Boot 3 applications using Spring JMS and Kotlin.
- Understand Spring Boot 3 Internals and customisation points relevant to Kotlin development and common Kotlin/Spring Boot integrations.
- Effectively test Spring Boot 3 applications using the Spring Boot Testing Framework and JUnit 5+, writing tests in Kotlin.
- Implement application Security with Spring Boot 3 in Kotlin, focusing on the modern Spring Security 6+ configuration model, web security, and method security applied to Kotlin code.
- Utilise the Spring Boot Actuator for monitoring and managing Spring Boot 3 applications developed in Kotlin.
- Understand how Spring Boot 3 simplifies integration with the wider Spring ecosystem using modern configuration approaches and Kotlin's features.
-
This 4-day intensive hands-on training course is designed for Kotlin software developers who want to learn how to build modern, production-ready applications using Spring Boot 3. It is ideal for:
Kotlin Developers looking to build server-side applications with Spring Boot.
Developers familiar with Kotlin but new to the Spring and Spring Boot ecosystem.
Developers currently building Spring/Spring Boot applications in Java who want to transition to using Kotlin for server-side development.
Architects and Technical Leads evaluating or implementing Spring Boot 3 with Kotlin for their projects.
Anyone involved in building or maintaining modern server-side applications using Kotlin and the Spring ecosystem.
-
Participants should have attended our Kotlin programming training course or have equivalent experience:
Experience developing applications using the Kotlin programming language is essential.
Familiarity with basic Spring Framework concepts is helpful but not strictly required, as the course covers core Spring within the Spring Boot context.
A basic understanding of web development concepts (HTTP, REST) and database concepts (SQL, ORM basics) is beneficial.
Familiarity with common Kotlin concepts such as data classes, null safety, lambdas, and extension functions is assumed.
-
This Spring Boot with Kotlin course is available for private / custom delivery for your team - as an in-house face-to-face workshop at your location of choice, or as online instructor-led training via MS Teams (or your own preferred platform).
Get in touch to find out how we can deliver tailored training which focuses on your project requirements and learning goals.
-
Spring Boot Overview
Motivation behind Spring and the Spring Framework.
What is Spring Boot and its purpose?
Spring Boot 3 Motivation and Key Features, including excellent Kotlin support.
Auto-configuration, Standalone applications, and Opinionated defaults.
Java 17+ Baseline, Jakarta EE migration, and compatibility with Kotlin.
Setting up Spring Boot 3 projects with Maven and Gradle, configured for Kotlin.
Using Spring Initializr for Kotlin projects.
IDE Support for Spring Boot development with Kotlin.
Lab: Creating and configuring a basic Spring Boot 3 application using Kotlin and Spring Initializr.
First Spring Boot Application
Using the Spring Boot CLI (overview) with Kotlin.
Creating a simple "Hello World" application in Kotlin.
Understanding Spring Boot auto-configuration in practice with Kotlin projects.
Packaging Spring Boot applications (JARs, WARs).
Lab: Building and running a basic "Hello World" Spring Boot 3 application in Kotlin.
Spring Beans and Dependency Injection (DI)
Introduction to Spring Beans and the Spring Container.
Defining Beans and configuring the Spring Context using Annotations, JavaConfig, and Lambda expressions in Kotlin.
Bean Scoping in the context of Kotlin.
Spring Annotations for configuration and DI used with Kotlin classes and properties.
Inversion of Control and Dependency Injection concepts.
Spring Dependency Injection mechanisms in Kotlin.
Wiring Beans together using Kotlin.
Lab: Working with Spring Beans and DI in a Spring Boot 3 application using Kotlin.
Spring Web MVC
Introduce Spring Web MVC framework.
Present the flow through the MVC architecture.
Creating a simple Web MVC application using Spring Boot 3 and Kotlin.
Defining Controllers and handling requests using Kotlin syntax.
Handling view resolution.
Building and Deploying MVC applications.
Java Config web applications and the role of auto-configuration (vs. manual configuration) in Kotlin projects.
Lab: Building a basic Spring Boot 3 Web MVC application using Kotlin.
Spring Boot and RESTful Services
Introduction to Web Services and the principles of REST.
Building RESTful services with Spring Boot 3 using Kotlin.
Using annotations (@RestController, @GetMapping, etc.) with Kotlin classes and functions.
Introduce Spring REST Clients: Consuming external REST services.
WebClient: The modern, non-blocking client for reactive and blocking applications, using Kotlin.
RestClient: The new blocking client with a modern API in Spring Boot 3.2+, using Kotlin.
Mention: RestTemplate (for understanding legacy Java/Kotlin code).
Lab: Creating a Spring Boot 3 RESTful service in Kotlin and building a client in Kotlin to consume it using WebClient/RestClient.
Spring Data and Spring Boot
Introduction to Spring Data project and its goals.
Creating a Spring Data project using Spring Boot Initializr, configured for Kotlin.
Data Access Objects (DAO) concepts.
Spring DAO support.
Working with JDBC in Spring Boot using Kotlin.
Spring DAO Exception Hierarchy.
Using Object Mappers for data mapping in Kotlin.
Exploiting JPA (and Hibernate) for ORM in Spring Boot 3, leveraging Kotlin data classes for entities.
Integrating NoSQL (e.g., MongoDB) databases with Spring Boot 3 using Kotlin.
Creating Data Access Objects (DAOs) using Spring Data Repositories with Kotlin interfaces and data classes.
Lab: Implementing data access using Spring Data JPA or MongoDB in Spring Boot 3 with Kotlin, using data classes.
Spring JMS and Spring Boot
Basic idea of message queues and messaging patterns (point-to-point, publish and subscribe).
Integrating a message server like RabbitMQ with Spring Boot using Kotlin.
JMS (Java Message Service) overview.
Spring JMS Development with Kotlin.
Using a Spring POJO bean (Kotlin class) as a message consumer.
Lab: Implementing messaging with Spring Boot 3 and RabbitMQ or JMS using Kotlin.
Integration with the Spring Ecosystem
Using XML and Annotation configuration (focus on Annotation and JavaConfig in Spring Boot 3 with Kotlin).
Using JavaConfig in Kotlin for advanced configuration.
Discussion: Choosing the right configuration approach in modern Spring Boot with Kotlin.
Spring Boot Internals and Defaults
Understanding the SpringApplication class and its lifecycle.
Custom Banner configuration (using banner.txt).
Using SpringApplicationBuilder in Kotlin.
Configuring ApplicationRunner and CommandLineRunner using Kotlin.
Custom Properties Prefix and configuration management in Kotlin projects.
Creating a Spring Boot Starter project (overview).
Improved Observability with Micrometer and Micrometer Tracing.
Native Image Support with GraalVM (overview).
Lab: Customizing Spring Boot defaults in a Kotlin application.
Spring Boot and Spring Test
Introduce Testing with Spring.
Highlight Test Support in Spring Boot.
Using JUnit 5.x for testing in Kotlin.
Integration of Spring and JUnit for Kotlin tests.
The Spring Boot Testing Framework (@SpringBootTest, test slices) used with Kotlin.
Lab: Writing unit and integration tests for a Spring Boot 3 application using Kotlin and JUnit 5.
Security with Spring Boot
Introduction to Spring Security.
Security with Spring Boot 3: Auto-configuration and key features.
Fundamental Elements of Spring Security (Authentication, Authorization, Principal).
Spring Security Managers and Providers (overview).
Securing Spring Web Applications: Modern Spring Security 6+ configuration in Kotlin.
Configuring HTTP security using SecurityFilterChain beans and authorizeHttpRequests with Kotlin lambda DSL.
Other Authentication providers (e.g., JDBC, LDAP, OAuth2 - overview).
Method Security: Securing individual methods in Kotlin code.
Defining Method level Security using annotations on Kotlin functions.
Annotation Based Method Security (@PreAuthorize, @PostAuthorize, etc.) with Kotlin.
Alternative Annotations (@Secured, @RolesAllowed).
Lab: Implementing and configuring security in a Spring Boot 3 web application using Kotlin and the modern Spring Security configuration model.
Spring Boot Actuator
Introduction to the Spring Boot Actuator Module.
Actuator Endpoints (health, info, metrics, etc.).
Changing the Endpoint ID and Management Endpoints Path.
Actuator CORS support.
Securing Endpoints (using Spring Security 6+ in Kotlin config).
Implementing Custom Actuator Endpoints.
Spring Boot Actuator health indicators.
Spring Boot Actuator metrics and improved observability.
Lab: Exploring and configuring Spring Boot 3 Actuator endpoints and security in a Kotlin application.
-
Spring Boot Documentation: The official documentation for Spring Boot. Ensure you are viewing the documentation for version 3.x.
Spring Framework Documentation: The official documentation for the core Spring Framework (v6+).
Spring Boot with Kotlin Documentation: The official guide specifically on using Spring Boot with the Kotlin language.
Spring Initializr: The web tool for generating new Spring Boot projects.
Spring Security Documentation: The official documentation for Spring Security. Ensure you are viewing the documentation for version 6+.
Spring Data Documentation: The official documentation for the Spring Data project.
Kotlin Language Documentation: The official documentation for the Kotlin programming language.
Maven Documentation: Official documentation for the Maven build tool.
Gradle Documentation: Official documentation for the Gradle build tool.
JUnit 5 Documentation: Official documentation for the JUnit 5 testing framework.
Trusted by