Learn from experts
Improve your skills
With 20 years of experience in the development of large scale applications on the Java platform, we provide trainings to grow you skills and develop truly modern and high quality applications.
We have designed the Inverno Framework so we are in the best position to teach you how to use it to its fullest potential.
Inverno Framework Core
Objectives
By the end of the course, you should have a good understanding of the following topics:
- Inverno Framework architecture and major design choices
- how to use inversion of control and dependency injection
- how an application composes beans and modules
- how to build, run and package a Inverno module or a Inverno application
Outline
- Modern Applications
- Inverno Distribution
- Project Setup
- Build
- Run
- Package
- Inversion of Control
- Dependency Injection
- Inverno Core
- Bean
- Module
- Modular applications
- Inverno Tools
- Build
- Run
- Test
- Package
Inverno Framework Modules
Objectives
By the end of the course, you should have a good understanding of the following topics:
- Inverno Framework base module including the converter API, the resource API, the net API and the reflection API
- how to use the configuration module
- how to use the boot module to create an Inverno application
- how to start an HTTP server
- how to create a Web server serving static resources with content negotiation
- how to create a complete Microservices application
Outline
- Inverno Framework modules organization
- Base module
- Converter API
- Resource API
- Net API
- Reflection API
- Configuration module
- Parameterized configuration
.cprops
file format- Configuration sources
- Load a configuration
- HTTP server module
- Features
- HTTP Exchange
- Start an HTTP server
- HTTP server configuration
- Web module
- Features
- Web Exchange
- Web Request Router
- Static content
- Parameter converters
- Message converters
- WebJars
- OpenAPI specification
Java Fundamentals
Objectives
By the end of the course, you should have a proper understanding of the following topics:
- the Java platform architecture and its major design choices
- Object Oriented Programming concepts
- the Java programming language
- the packaging of Java components and applications
- how the Java platform loads and run a program
- Java dynamic linking
- API in Java
- common design patterns in Java
Outline
- History
- Java Platform
- Java Virtual Machine
- Class libraries
- Object Oriented Programming
- Definition and Concepts
- Class-based programming
- Prototype-based programming
- Java Programming Language
- Class
- Interface
- Abstract Class
- Package
- Access modifiers
- Final
- Static
- Packaging
- Java Class Loading
- Class Loader
- Class loading
- Dynamic linking
- Reflection API
- Application Programming Interface
- Modular programming
- API design
- Design patterns
- Factory method
- Abstract Factory
- Singleton pattern
- Adapter pattern
- Bridge pattern
- Decorator pattern
Java Advanced
Objectives
By the end of the course, you should have a good understanding of the following topics:
- the Java Platform Module System
- Advanced Java packaging
- Java monitoring
- Java Collection API
- Java Functional Programming
- Java Reactive programming
Outline
- Java Modular Programming
- Advanced Packaging
- jmod
- jlink
- jpackage
- Monitoring
- jconsole
- JMX
- Java Collection API
- List
- Set
- Queue
- Deque
- Map
- Java Functional Programming
- Function
- Consumer
- Supplier
- Predicate
- Lambda
- Stream
- Java Reactive Programming
- Blocking vs non-blocking
- Flow Publisher/Subscriber/Subscription
- Mono
- Flux
- Sink
- Threading model
- Back pressure
Apache Maven
Objectives
By the end of the course, you should have a good understanding of the following topics:
- why Maven has been created and its major design choices
- how to create a project
- how to develop a project using external dependencies
- how to test a project
- how to build a project
- how to properly create a multi-module project
- how to properly manage dependencies
- how to distribute a project
- how to document a project
Outline
- History
- Shell script
- Make
- Ant
- Why Maven?
- Project structure
- Quality control
- Guidelines and best practices
- Dependency management
- Distribution
- Documentation
- Convention over Configuration
- Build process
- Lifecycle
- Phase
- Lifecycle mapping
- Goal
- Maven Coordinates
- Artifact
- Group
- Version
- Archetype
- Create a new Maven project
- Create an archetype from an existing project
- POM
- Project information
- Properties
- Dependencies
- Build
- Profile
- Inheritance
- Super POM
- Dependency management
- Plugin Management
- Plugin goal’s execution
- Multimodule projects
- Best practices
- Maven Repositories
- Local Repository
- Remote Repository
- Distribution Management
- Site
- Reports
- Site content
- Site descriptor
- Distribution
Spring Framework Core
Objectives
By the end of the course, you should have a good understanding of the following topics:
- Spring architecture and its major design choices
- Spring IoC/DI container
- Aspect Oriented Programming
- Data Access
- JMS, Cache, Task scheduling
- Microservices
- Testing
Outline
- Prerequisites
- History
- What is the Spring Framework?
- IoC/DI container
- Spring Core Container
- Spring modules
- IoC Container
- Application Context
- Configuration metadata
- Bean definition
- Dependency injection
- Bean post processor
- Property placeholder
- Annotation-based configuration
- Java-based configuration
- Java-based vs Annotation-based
- Aspect Oriented Programming
- Problematic
- Using AspectJ
- When to create an Aspect?
- Data access
- JDBC vs ORM
- Spring JDBC
- Transaction Management
- Transaction manager
- Declarative transaction management
- Integration
- JMS
- Cache
- Task Execution and Scheduling
- MicroServices
- Spring MVC
- REST controller
- Message converters
- Testing
- Unit Testing
- Integration Testing