Core Spring Training

Spring Source Training

The Spring Source course is intended for experienced Java EE Developers or Architects and if you are interested in learning all about developing java applications with Spring, you have an upcoming project and need to learn Spring quickly and you like to become Spring Certified to improve your career opportunities. For you to benefit you will need to be an experienced Java developer or architect with experience developing applications using Java.

Contact us to book your seat. Training may be done on-site or at our training venues in Durban, Cape Town and Johannesburg.

Course Duration Price ZAR(ex vat) Price USD
Spring Core Training Summary
Spring Core Training 4 days R15,000 $1,500
  • Lunch, refreshments and training material included.
  • Class start at 9:00am for 9:30am
  • South Africa training locations: Johannesburg, Cape Town, Durban
  • Global training locations: USA, Candana, UK, Dubai, Europe

Course Outline

Introduction

  • Use the Spring Framework to develop Java applications
  • Take the Spring Boot shortcut to productivity.
  • Use dependency injection to set up and configure applications.
  • Test Spring-based applications.
  • Configure Spring applications using Java configuration, annotations, or XML.
  • Use Spring Data JPA and JDBC to rapidly implement relational database access.
  • Use Spring support for transactions.
  • Use aspect-oriented programming (AOP) to declaratively add behavior to applications.
  • Develop a basic Web application with Spring MVC.
  • Use Spring Security to secure Web applications.
  • Use Spring to easily build REST web services.
  • Start the journey to Microservices and Cloud Native Applications

Modules

Introduction to Spring

  • Java configuration and the Spring application context
  • Configuration and @Bean annotations
  • Import: working with multiple configuration files
  • Launching a Spring Application and obtaining Beans

Spring Java Configuration

  • External properties & Property sources
  • Environment abstraction
  • Bean scope, bean profiles
  • Spring Expression Language (SpEL)
  • How it Works: Inheritance based proxies

Annotation-Based Dependency Injection

  • Autowiring and component scanning
  • Java configuration versus annotations, mixing.
  • Lifecycle annotations: @PostConstruct and @PreDestroy
  • Stereotypes and meta-annotations

XML Dependency Injection

  • XML syntax, constructor & setter injection
  • Resource prefixes
  • Namespaces and best practices when using XML
  • XML profile selection

The Bean Lifecycle

  • The init phase: available interceptors
  • The init phase: what is the difference between XML, annotations and Java configuration?
  • The use and destruction phases

Testing a Spring-Based Application

  • Spring and Test Driven Development
  • ContextConfiguration and @RunWith annotations
  • Application context caching and the @DirtiesContext annotation
  • Profile selection with @ActiveProfiles
  • Easy test data setup with @Sql

Aspect-Oriented Programming

  • What problems does AOP solve?
  • Differences between Spring AOP and AspectJ
  • Defining pointcut expressions
  • Implementing an advice: Around, Before, After

Data Access and JDBC with Spring

  • How Spring integrates with existing data access technologies
  • DataAccessException hierarchy
  • Implementing caching using @Cacheable
  • jdbc namespace and Spring‘s JdbcTemplate

Database Transactions with Spring

  • Transactional annotation
  • Transactions configuration: XML versus annotations
  • Isolation levels, transaction propagation and rollback rules
  • Transactions and integration testing
  • Should you use read-only transactions?

JPA with Spring and Spring Data

  • Quick introduction to ORM with JPA
  • Benefits of using Spring with JPA
  • JPA configuration in Spring
  • Spring Data JPA dynamic repositories
  • Spring in a Web Application Modules

Spring Boot

  • Using Spring Boot to bypass most configuration
  • Simplified dependency management with starter POMs
  • Packaging options, JAR or WAR
  • Easily overriding Spring Boot defaults
  • Going beyond the default settings
  • Customizing Spring Boot configuration
  • Logging control
  • Configuration properties using YAML
  • Boot-driven testing

Spring Security

  • What problems does Spring Security solve?
  • Configuring authentication and intercepting URLs
  • The Spring Security tag library for JSPs
  • Security at the method level
  • Customizing the Spring Security filter chain

Rest with Spring MVC

  • An introduction to the REST architectural style
  • Controlling HTTP response codes with @ResponseStatus
  • Implementing REST with Spring MVC, @RequestBody, @ ResponseBody
  • Spring MVC’s HttpMessageConverters and automatic content negotiation

Microservices with Spring Cloud

  • Microservice Architectures
  • Challenges with cloud-native applications
  • Using Spring Cloud
  • Developing a simple microservice system
  • Configuring Spring in a Web application
  • Introduction to Spring MVC, required configuration
  • Controller method signatures
  • Views and ViewResolvers
  • Using @Controller and @RequestMapping annotations