EIEIOTECHNOVATION
← Training programmes

EIEIO / PROGRAMMING & DEVELOPMENT

Spring Boot Java 8 with Maven

Course outline

5 days

Duration

5 days

Target Participants

The primary target audience for this course is software developers / programmers.

  • Students new to Spring Boot
  • Students new & existing to the Spring Framework
  • You should NOT take this course if you have never used Java before.

Program Prerequisites

  • Students should be familiar with the Java programming language
  • Web Development Experience (HTML / CSS / JavaScript)
  • A computer that can run Spring Tools Suite
  • Familiar with MVC

Mode of Delivery

Every participant will be provided with course notes and are required to bring in their own laptops for hands-on exercise and practice sessions.

Course Content

  • Writing Java Programs
  • What is a Java Program
  • Writing the Source Code
  • Compiling the Source Code
  • Running the Compiled Code
  • Installing and configuring Eclipse IDE
  • Downloading and Installing Maven
  • Testing Maven Installation
  • Data Types
  • What is a Data Types
  • What is an Identifier
  • Data Types in Java
  • Primitive Data Types in Java
  • Special Floating-Point Numbers
  • Rounding Modes
  • Number Objects
  • String Objects
  • Format data for output
  • Wrapper Classes
  • Autoboxing and Unboxing
  • Beware of Null Values
  • Overloaded Methods
  • Comparison Operators
  • Collections
  • Operators
  • What is an Operator
  • Assignment Operator
  • Arithmetic Operator
  • String Concatenation Operator
  • Relational Operators
  • Boolean Logical Operators
  • Statements
  • What is a Statement and Type of Statements
  • A Block Statement
  • The if-else Statement
  • The switch Statement
  • Strings in Switch
  • The for Statement
  • The for-each Statement
  • The while Statement
  • The do-while Statement
  • The break Statement
  • The continue Statement
  • Diamond Syntax
  • Classes and Objects
  • What is a Class
  • Declaring Fields in a Class
  • Creating Instances of a Class
  • The null Reference Type
  • Using Dot Notation to Access Fields of a Class
  • Default Initialization of Field
  • Access Level Modifiers for a Class
  • Import Declaration
  • Declaring Methods of a Class
  • Local Variables
  • Instance Method and Class Method
  • Invoking a Method
  • Access Level for Class Members
  • The Object and Objects Classes
  • The Object Class
  • What is the Class of an Object
  • Computing Hash Code of an Object
  • Comparing Objects for Equality
  • String Representation of an Object
  • Cloning Object
  • Finalizing an Object
  • Immutable Objects
  • The Objects Class
  • Java Package
  • Package declaration
  • Sub-Packages in Java
  • Naming Convention
  • Importing Java Package
  • Access Modifier
  • Java Archive (JAR) Files
  • Exception Handling
  • What is an Exception
  • Using a try-catch Block
  • Exception Class Hierarchy
  • Arranging Multiple catch Blocks
  • Throwing an Exception
  • Creating an Exception Class
  • The finally Block
  • The try-with-resources Block
  • Multi-Catch Exceptions
  • Re-throwing Exceptions
  • Try with Resources
  • AutoCloseable Interface
  • Arrays Strings Dates Time
  • What is an Array
  • Arrays are Objects
  • Accessing Array Elements
  • Length of an Array
  • Multi-Dimensional Arrays
  • Enhanced for Loop for Arrays
  • Runtime Array Bounds Check What is a String
  • String Literals
  • Creating String Objects
  • String Operators
  • Comparing Two Strings
  • StringBuilder and StringBuffer
  • The Date-Time API
  • Calendar Systems
  • Clocks and Period Packages
  • Period between Two Dates and Times
  • Partials
  • Formatting Dates and Times
  • Parsing Dates and Times
  • Wrapper Classes
  • Autoboxing and Unboxing
  • Beware of Null Values
  • Overloaded Methods
  • Comparison Operators
  • Issues with existing Date / Time APIs
  • LocalDate, LocalTime and LocalDateTime
  • Using ZonedDateTime API
  • Using Period and Duration
  • Compatibility with Date and Calendar
  • Date and Time Formatting
  • The Collections Framework
  • The Set Interface
  • Set Implementation Classes
  • The List Interface
  • List Implementation Classes
  • The Map Interface
  • Map Implementation Classes
  • Inheritance
  • What is Inheritance
  • The instanceof Operator
  • Binding
  • Method Overriding and Method Overloading
  • Method Hiding and Field Hiding
  • Disabling Inheritance
  • What is an Interface
  • Implementing an Interface
  • Implementing Multiple Interfaces
  • Interface Inheritance
  • The instanceof Operator
  • Marker Interfaces
  • Functional Interfaces
  • Polymorphism – One Object, May Views
  • Dynamic Binding and Interfaces
  • Pluggable Annotation Processing API
  • Common Annotations and Role Based Annotations
  • @Generated
  • @Resource
  • @Resources
  • @PostConstruct
  • @PreDestroy
  • @DeclareRoles
  • @RolesAllowed
  • @PermitAll
  • @DenyAll
  • Lambda Expressions
  • Single method Interface
  • Anonymous Interface Implementation
  • Lambda Type Inference
  • Lambda Parameters
  • Lambda Function Body
  • Returning a Value
  • Lambdas as Objects
  • Variable Capture
  • Method References as Lambdas
  • Java Stream API for Bulk Data Operations on Collections

Introduction

  • Stream Creation
  • Referencing a Stream
  • Stream Pipeline
  • Lazy Invocation
  • Order of Execution
  • Stream Reduction
  • Parallel Streams
  • Concurrency API improvements
  • The Concurrency API
  • Semaphore and Other Synchronizers
  • Concurrent Collections
  • Atomic Operations
  • Executor and Executor Service
  • Thread Pools
  • Parallel Processing
  • Getting Started with Maven
  • Terminology and Basic Concepts
  • Artifacts
  • Lifecycle
  • Plugins
  • Running Maven
  • Running Maven from Eclipse
  • Common Goals
  • pom.xml
  • Commonly Used Plugins
  • Maven Plugins
  • Declaring and Configuring Plugins
  • Running the Plugin
  • Binding a Plugin Goal to the Lifecycle
  • Maven Surefire Test Plugin
  • Failsafe Plugin
  • Site Plugin
  • JavaDoc Plugin and PMD Plugin
  • Introduction to Spring Boot
  • Introduction to Spring
  • Spring Framework Configuration
  • Java @Configuration Classes
  • Defining @Configuration Classes
  • Loading @Configuration Classes
  • Modularizing @Configuration Classes
  • Qualifying @Bean Methods
  • Wiring using @Autowired
  • Configuration with Spring Expression Language
  • Resolving Text Messages
  • Spring Property Conversion
  • Spring Converter Interface
  • Using Custom Converters
  • Spring PropertyEditors
  • Registering Custom PropertyEditors
  • Introduction to Spring Boot
  • What is Spring Boot?
  • Spring Boot Main Features
  • Understanding Java Annotations
  • Spring MVC Annotations
  • Example of Spring MVC-based RESTful Web Service
  • Spring Booting Your RESTful Web Service
  • Spring Boot Skeletal Application Example
  • Converting a Spring Boot Application to a WAR File
  • Externalized Configuration
  • Starters
  • The 'pom.xml' File
  • Spring Boot Maven Plugin
  • Create a Spring Boot Application
  • Using Spring with JPA or Hibernate
  • Spring JPA
  • Benefits of Using Spring with ORM
  • Spring @Repository
  • Using JPA with Spring
  • Configure Spring Boot JPA EntityManagerFactory
  • Application JPA Code
  • "Classic" Spring ORM Usage
  • Spring JpaTemplate
  • Spring JpaCallback
  • JpaTemplate Convenience Features
  • Spring Boot Considerations
  • Spring Data JPA Repositories
  • Spring REST Services
  • Many Flavors of Services
  • Understanding REST
  • RESTful Services
  • REST Resource Examples
  • REST vs SOAP
  • REST Services With Spring MVC
  • Spring MVC @RequestMapping with REST
  • Working With the Request Body and Response Body
  • @RestController Annotation
  • Implementing JAX-RS Services and Spring
  • JAX-RS Annotations
  • Java Clients Using RestTemplate
  • RestTemplate Methods
  • Spring Micro services
  • Evaluation of Micro Services
  • Principles Of Micro Services
  • Characteristics of Micro Services
  • Micro services Benefits
  • Relationship with SOA
  • Twelve Factor Apps
  • Micro Services use cases
  • Micro Services early adopters
  • Building micro services with boot
  • Micro Services Capability model
  • Micro Services Use case
  • Stateless Microservice with Basic Auth and CORS
  • Stateful Microservice with Form Auth, CSRF and CORS
  • Stateful Microservice with SPA Integrated
  • DEPLOYMENT
  • Continuous Development and Delivery
  • JAR/WAR

Programme scope, delivery arrangements and suitability are confirmed during enquiry.