Java Course
Summary
Customisable Java course that can be delivered online or at your offices.
This fast-paced instructor-led online course covers Java application development. During the course, we assemble an ecommerce type Web Application, using Dependency Injection to connect application layers. A Repository Layer maps entity classes to a MySQL database using Spring Data Persistence. A Service Layer contains business logic and a Web Service is implemented as a REST Controller Layer with Spring. HTML User Interfaces to the web service are built with Bootstrap and jQuery AJAX.

Course content
1. Java Programming
Review of Java fundamentals.
- This is intended as a recap for developers who are already familiar with object-oriented programming but may need a refresher. For customised courses, the time spent on this section can be increased or decreased
- JDK tools including javac, java, jar and javap
- Setting up the IntelliJ Development Environment
- Keywords; primitive types; conversion and casting; operators
- Local variables; conditions and loops; switch blocks; recursion
- Instance variables, encapsulation, access modifiers, constructors
- Mutable and immutable types; arrays
- Inheritance; method overriding and polymorphism; the Object class
- The Exception class hierarchy; catching and throwing exceptions
3 units
2. Collections
The Java collections framework and building a domain model
- Generic classes and interfaces; the collections hierarchy
- Using implementations of the List, Set and Deque interfaces
- Overriding the equals and hashCode methods
- Using Big O notation and relative speeds of collection methods
- Wrapper classes; dates and times; enums; domain classes
1 unit
3. Lambda expressions and the Stream API
Using the Stream API to process collections.
- Using the Stream API to process collections
- Functional interfaces, anonymous inner classes and lambda expressions
- Filtering and projecting data with the Stream interface and collecting results
- Primitive streams and the Optional class
- Repository classes and interfaces; test driven development with jUnit and Mockito
- Byte streams and character Streams; serializing objects to a file as JSON
1 unit
4. Concurrency, JDBC and modules
Asynchronous and concurrent programming and interacting with a database using JDBC
- Building multi-threaded code with Executors and the Callable and Future interfaces
- Using thread safe collections and the Atomic classes
- Building asynchronous computations with chained CompletionStages
- Load testing with the tempus-fugit library
- Using SQL to create tables, insert rows and perform table joins
- Connecting to a MySQL database with JDBC; the Autocloseable interface
- Java module declarations; exporting packages; dependencies
1 unit
5. Spring data and REST
Using Spring Boot to build a REST service that connects to a database
- Using Spring Boot to build a REST service that connects to a database
- Building and running a simple Spring Boot application with IntelliJ and Maven
- Describing application layers with UML class and sequence diagrams
- Building a Service layer and injecting dependencies
- Building Repository classes with CrudRepository; associations between entities; using the query builder mechanism
- Configuring the application to connect to the MySQL database
- Mapping HTTP requests to Controller methods; responding to HTTP GET, POST, PUT and DELETE
- Handling exceptions and returning appropriate HTTP responses; testing the Web Service with Postman
2 units
6. Spring application with UI
Building a Spring ecommerce type application, using jQuery Ajax to call Spring controller methods
- jQuery syntax, selectors and events
- Calling the web service with jQuery ajax
- Building a responsive user interface with Bootstrap
- Writing Spring controller, service and repository classes
3 units
Venue


The course wil be held at modern serviced offices next to Paddington Basin in West London