Application Development with Spring Framework
The Spring Framework is a well-known open source application framework and it is a perfect alternative of the Java Enterprise Edition. Majority of the java developers around the world use Spring Framework to create modular, easily testable and reusable code. Spring helps you to build applications from POJOs therefore creating services of enterprises are separable and dependency free. The core features of the Spring Framework can be used in developing many kinds of Java application, especially for building web applications and cloud based services.
The course is available in the following programming languages: Java.
Architects, software developers with minimum 1 year java background or years of practice in other programing languages. The participant may have initial Spring knowledge and also may have used a few modules of Spring for years. Experience shows that people with years of Spring usage also learn a lot during the course, because developers often use some modules without understanding the logic behind. The course is not recommended for software developers with advanced Spring knowledge who used and understand most modules below.
This course is constructed for Java programmers who need to learn the Spring Framework in detail along with its architecture and actual usage. During each module of this workshop, the trainer will guide the participants through the theory behind the Spring Framework and gives them exercises that help them get practical experience.
During this module the participants understand why do enterprises need to use Spring Framework, and how it keeps their code manageable in the long run. Why is it the de-facto standard solution in the enterprise world and why is it inevitable to learn it.
Key topics during this section: Inversion of Control, Dependency Injection, Application Context, Configuration, Profiles, Component Scan, Lifecycle
With this module the participants learn how spring supports the standard persistence solution: JPA. Through exercises the trainer will show how to speed up the programing with Repositories, and how spring supports handling transactions. The trainer also shows how spring deals with the NoSQL databases like MongoDB and Redis.
Key topics during this module: JPA theory, Spring DATA, Repositories, Transaction handling, NoSql Theory, MongoDb Template
In this module participants get to know how to build web applications with spring and how the Front controller design pattern works in Spring MVC. The participants acquire enough knowledge to build up a web module easily.
Key topics: MVC, Controllers, Web UI
The de-facto standard Representation State Transfer theory will be introduced and practice sessions will ensure that the participants get to know how to use REST in the spring environment.
Key topics: REST Theory, HATEOAS, Spring REST
The new modern way of building green field projects will be shown. Boot became the new trend in the spring community, therefore it belongs now to the basics. Building up new applications is much faster with Boot, so it is necessary to reveal the power and useage of this new technology.
Key topics: Starters, AutoConfiguration, Actuator
It is important to understand when to use microservice architecture and when to use monolith. This module makes clear statements and gives guidelines for participants to be able to decide later what microservices good for.
Key topics: Theory, pros and cons, communication patterns
When projects are using microservice architecture (also using Java), it is suggested to use some spring cloud packages, because it will ensure the clear and effective way of programming (especially when it is used together with Boot)
Key topics: Eureka, Ribbon, Hystrix, Feign, Zuul, Cloud Config
The participant learns basic security settings with spring using xml and java based config. The module also shows how easy it is to set up a spring based security for a web project.
Key topics: FilterChain of Spring, UserDetailService, types of user, password storage
If projects need asynchronous communication between modules, then messaging is one of the available solutions. The participants will understand the basic architecture of Message Queues and Spring AMQP. Spring support will be shown through using spring template with RabbitMQ.
Key topics: Theory, RabbitMQ, Spring AMQP, Template
This module introduces a PaaS, namely cloudfoundry, which is an alternative solution to AWS.
Key topics: Cloud Foundry, CLI,
In this module the trainer reveals advanced techniques of testing for MVC applications with Mocking. Writing tests for REST services, also using REST Docs which is a powerful tool for documenting REST Api-s.
Key topics: Unit Testing, Integration Testing, Mockito, REST Docs
- Classroom with computers is required
- English handout and the source code of the demo applications will be provided for the participants.
- 2 whiteboards and a beamer with HDMI is required.
- Duration: 0,5 – 1 day
- A certificate of the successful exam (or attendance on the course) can be handed out