Submissions Ended

Restful Applications with Spring Boot

Motivation/Rationale

Spring Framework has for long been around as the de facto standard framework for developing Java applications. From its early versions till now, there are many exciting new things taking place in the Spring ecosystem, including work in the areas of cloud computing and microservices, big data, schema-less data persistence, enterprise integration and many more. Hence, Spring on its own has been established as a complete base framework that addresses almost all modern business needs via its portfolio projects. Among all spring solutions, Spring Boot is maybe the most exciting new thing to come. Spring Boot offers a new paradigm for developing Spring applications with minimal effort, with more agility and with minimal (or possibly no) configuration effort. One of the main things that Spring Boot tries to do is to get Spring boilerplate out of your way and only leave the development of the business logic itself for you.

One great benefit of this inherent power of Spring can be seen in building complex RESTful APIs. As RESTful web services don’t follow a prescribed standard except for HTTP, it’s important to build RESTful APIs per industry best practices to ease developmentand increase productivity. When it comes to Java, there are many frameworks and libraries available, e.g. JAX-RS, Jersey, RESTEasy, etc. However, in contrast to these or other secondary solutions, Spring Boot combines unique characteristics and a clear architecture that gives it a competitive advantage to roll out a REST API very quickly, and reliably. The main reason for this is the excellent support of Spring for developing RESTful web services. Indeed, there are many utility classes and annotations available, which make the development of RESTful web services in Spring easier and seamless, as compared with other alternatives. Other than that, testing RESTful APIs in Spring Boot is very straightforward.

Duration

This specific Code.Learn program lasts 3 days (Thursday,Friday & Saturday) with 16 hours of lectures and hands-on exercise on a real-life project.

Key Objectives – Curriculum (High Level)

Prior experience in Spring is not a prerequisite for participating in this training program. The flow begins with the very fundamental principles of Spring core framework, covering aspects such as bean lifecycle and scope, basic annotations, project setup, etc. After establishing a common understanding, the course dives into the design principles of RESTful applications and explains best practices. Then, the course continuous with security management and finally ends with unit and integration (automated and manual) testing examples. All topics are adequately explained with extended hands-on sessions & real-life case studies.

A high-level breakdown of the covered items is the following:

  • Spring Boot vs. Spring vs. Spring MVC
  • Why Spring Boot is so popular – What Spring Boot is not
  • Spring Boot new project setup and initialization
  • Spring Framework Basics (dependency injection, autowiring, bean scope, bean lifecycle, application context with XML, application context with annotations and component scan, mixed application context, basic annotations)
  • Unit testing in Spring
  • Introduction to RESTful APIs with Spring Boot
  • Controller Classes
  • Services – Repositories
  • Implement GET, POST, DELETE operations
  • HTTP status code control in response messages
  • Generic exception Handling in RESTful APIs
  • Validations
  • Connection with Java Persistence API (JPA)
  • Spring Security and RESTful applications
  • Health monitoring of a RESTful application with Actuator
  • Testing the service layer
  • Testing the Rest controller
  • Manual/load testing of RESTful APIs

Physical/Virtual Classroom

The lessons can be carried out:

  • Inside a physical classroom with an instructor,
  • In an online environment as a virtual classroom, with live connection with the instructor through video conferencing; or lastly,
  • A combination of both physical and online.

The method of teaching will depend on the current conditions, and also on the participants’ preferences.

Regarding online, the instructor provides the taught material through screen sharing, live broadcast, or by working on the cloud where attendees can see and interact with everything in real-time. Attendees themselves can seamlessly and actively participate and ask questions, as they would in a physical classroom. Additionally, they can collaborate in team projects and deliver assignments and hands-on projects that the instructor can see and provide feedback easily and without delays.

Target Audience

Computer scientists, software engineers, and developers with or without prior experience in Spring are welcome to participate in this code.learn program and unlock the full potentiality of the topics taught by upskilling their future careers.