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.