Course Number: MBL-224

Duration: 3 days (19.5 hours)

Format: Live, hands-on

Spring Boot with Kotlin Training Overview

This Spring Boot with Kotlin training course teaches developers how to use all the features of Kotlin, refactor Kotlin codebases in IntelliJ, perform TDD using KotlinTest, and generate mock objects using Mockito. Students learn how to develop microservices via both Spring MVC and WebFlux and create basic Android applications.

Location and Pricing

This course is taught as a private, live online class for teams of 3 or more. All our courses are hands-on, instructor-led, and tailored to fit your group’s goals and needs. Most Accelebrate classes can be flexibly scheduled for your group, including delivery in half-day segments across a week or set of weeks. To receive a customized proposal and price quote for online corporate training, please contact us.

Objectives

All attendees will learn how to:

  • Write RESTful services in Kotlin via Spring Boot, MVC, and WebFlux
  • Write unit tests for Spring including using automatic mock injection
  • Use Spring Boot starters for data access and security
  • Leverage Kotlin to simplify building Spring Boot applications

Prerequisites

Students must be confident Java developers, however, we would be delighted to add content from the Introduction to Kotlin course for students who are new to the language. Attendees should also have a basic understanding of the architecture of RESTful services and Single Page Applications.

Outline

Expand All | Collapse All

Introduction to Spring
  • Weaknesses in the original JEE architecture
  • Why Spring arose as a cure for the maladies of JEE
  • Configuring Spring via XML, YAML, Groovy and Kotlin
  • How to choose between the configuration options
  • Springs growth from library to framework to ecosystem
  • Choosing between the Spring platform and JEE8
Annotation Based Dependency Injection in Spring Core
  • The role of the
  • Different ways of providing ‘bean wiring’ to the context object
  • Understanding scopes and selecting the correct scope for a bean
  • Using
  • Using
  • Using
  • Declaring beans using
  • Creating bean provider methods via
  • A detailed introduction to Spring Expression Language (Spring EL)
  • Populating fields via Spring EL using
Other Forms of Dependency Injection in Spring Core
  • The XML based Bean Description Language and Schema Extensions
  • The Groovy and Kotlin based Domain Specific Languages
  • Support for standard properties files and YAML
Unit Testing Spring Beans
  • How a DI container aids unit and integration testing
  • Configuring the Spring specific test runner for JUnit
  • Injecting dependencies into JUnit tests via Spring
  • Creating configurations for different testing scenarios
  • Combining mocking frameworks like Mockito with Spring
Introducing Aspect Oriented Development
  • The notion of cross-cutting concerns (aka Aspects)
  • Key terms (Aspects, Advice, Pointcuts, Weaving etc…)
  • A detailed guide to AspectJ Pointcut Expressions
  • Support for AOP in Spring Core via auto-proxying
  • Why only method calls can be intercepted in Spring
  • Declaring Advice and Pointcuts using annotations
  • Understanding the five different kinds of advice
  • How AOP is used within Spring Security and Transactions
Introduction to Spring Boot
  • The need for a meta-framework to manage Spring itself
  • Creating Spring Boot projects via the ‘Spring Initializr’
  • How Spring Boot configures other parts of Spring as modules
  • Customizing the Maven / Gradle build file to manage dependencies
  • Options for overriding the default configurations in Spring Boot
  • Building and testing command line applications in Spring Boot
Using Spring MVC within Spring Boot
  • How MVC evolved from a Web Framework to a Microservices Platform
  • MVC Design (Dispatcher Servlet, Handler Mappings and View Resolvers)
  • Registering controllers via annotations and component scanning
  • The difference between
  • Deploying MVC Apps as Microservices via Spring Boot and Cloud Services
  • Overriding the default configurations and registering JEE components
Basic Configuration of Spring Controllers
  • Associating controller beans with URL patterns
  • Mapping methods to HTTP verbs (GET, POST, PUT etc…)
  • Triggering methods based on parameters and headers
  • Passing objects from the Servlet API into methods
  • Injecting individual parameters and populating JavaBeans
  • Injecting information from HTTP headers and cookies
  • Using path variables to inject information from the URL
  • Marshalling the body of the request into JSON and/or XML
  • Customizing XML marshalling via the JAXB annotations
  • Cusomizing JSON marshalling via Jackson annotations
Advanced Configuration of Spring Controllers
  • Wrapping the response type in
  • Creating
  • Customizing the response code and manipulating HTTP headers
  • Validating input via the JSR-303 Bean Validation annotations
  • Registering your own validators for cross-field validations
  • Using the
  • Defining model attributes and exception handler methods
  • Redirecting output to server pages via view resolvers
  • Configuring Thymeleaf as a sample server page library
Writing Tests and Clients for Spring Controllers
  • The
  • Creating a Web Application Context within a JUnit test
  • Sending requests to controllers via the Dispatcher Servlet
  • Using the fluent API to specify requests and check responses
  • Writing clients for RESTful Services via the JAX-RS Client API
  • Writing clients for RESTful Services via the Spring
Enhancements in Spring 5 and Spring Boot 2
  • Support for Functional and Reactive Programming in Spring 5
  • The new ‘WebFlux’ model for services in Spring Boot 2
  • Creating WebFlux based services via MVC annotations
  • Creating WebFlux services fia the functional model
  • Using the Kotlin based DSL for functional services
Securing and Monitoring Spring Microservices
  • Combining Spring Security with Spring Boot Applications
  • Different options for adding authentication to endpoints
  • Using Spring Actuator to collect metrics from running services
  • Customizing and extending the built in metrics and health checks
Database Access with Spring Data
  • The famously intractable ‘Object Relational Mismatch’
  • Review of ORM frameworks such as Hibernate and the JPA
  • How Spring Data simplifies the creation of repositories
  • Customizing and extending your repository components
Conclusion

Training Materials

All Kotlin training attendees receive comprehensive courseware.

Course outline and materials are copyrighted and owned by Instil Software.

Software Requirements

  • Windows or Mac minimum 8 GB RAM
  • Android Studio installed
  • Provided lab files from Accelebrate


Related Topics

Learn faster

Our live, instructor-led lectures are far more effective than pre-recorded classes

Satisfaction guarantee

If your team is not 100% satisfied with your training, we do what's necessary to make it right

Learn online from anywhere

Whether you are at home or in the office, we make learning interactive and engaging

Multiple Payment Options

We accept check, ACH/EFT, major credit cards, and most purchase orders



Recent Training Locations

Alabama

Birmingham

Huntsville

Montgomery

Alaska

Anchorage

Arizona

Phoenix

Tucson

Arkansas

Fayetteville

Little Rock

California

Los Angeles

Oakland

Orange County

Sacramento

San Diego

San Francisco

San Jose

Colorado

Boulder

Colorado Springs

Denver

Connecticut

Hartford

DC

Washington

Florida

Fort Lauderdale

Jacksonville

Miami

Orlando

Tampa

Georgia

Atlanta

Augusta

Savannah

Hawaii

Honolulu

Idaho

Boise

Illinois

Chicago

Indiana

Indianapolis

Iowa

Cedar Rapids

Des Moines

Kansas

Wichita

Kentucky

Lexington

Louisville

Louisiana

New Orleans

Maine

Portland

Maryland

Annapolis

Baltimore

Frederick

Hagerstown

Massachusetts

Boston

Cambridge

Springfield

Michigan

Ann Arbor

Detroit

Grand Rapids

Minnesota

Minneapolis

Saint Paul

Mississippi

Jackson

Missouri

Kansas City

St. Louis

Nebraska

Lincoln

Omaha

Nevada

Las Vegas

Reno

New Jersey

Princeton

New Mexico

Albuquerque

New York

Albany

Buffalo

New York City

White Plains

North Carolina

Charlotte

Durham

Raleigh

Ohio

Akron

Canton

Cincinnati

Cleveland

Columbus

Dayton

Oklahoma

Oklahoma City

Tulsa

Oregon

Portland

Pennsylvania

Philadelphia

Pittsburgh

Rhode Island

Providence

South Carolina

Charleston

Columbia

Greenville

Tennessee

Knoxville

Memphis

Nashville

Texas

Austin

Dallas

El Paso

Houston

San Antonio

Utah

Salt Lake City

Virginia

Alexandria

Arlington

Norfolk

Richmond

Washington

Seattle

Tacoma

West Virginia

Charleston

Wisconsin

Madison

Milwaukee

Alberta

Calgary

Edmonton

British Columbia

Vancouver

Manitoba

Winnipeg

Nova Scotia

Halifax

Ontario

Ottawa

Toronto

Quebec

Montreal

Puerto Rico

San Juan