Spring Framework has for long been around as the de facto standard framework for developing Java applications and 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 web/cloud applications, paying attention to get boilerplace code out of your way and only leave the development of the business logic itself for you. Recognizing the universal dominance of Spring Boot in building modern enterprise web applications, this training course mainly focuses on the common but still demanding problem of designing and implementing efficient and reliable RESTful applications with persistence layer. In particular, this course will dive into the following technologies:
- Spring Data has been established as a must-have framework for developing complex enterprise applications that collect, transform and report on vast amounts of information. Despite the different technologies for storing data, relational databases still constitute the backbone onto which other storing systems need always to connect. Moreover, they are still not only the starting point for every enterprise application but more importantly, they usually have a lifespan longer than the application itself. Since moving data back and forth between a database system and java object model has always been hard and needs a lot of unavoidable boilerplate code, Spring Data, and in particular Java Persistence API (JPA) comes to bridge this gap and has become standard way of persisting java objects into relational databases.
- RESTful APIs is another inherent power of Spring. As RESTful web services don’t follow a prescribed standard except for HTTP, it’s important to build best practices to ease development and 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. 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.
Combining JPA as a necessary abstraction layer between the business logic and the database system, with RESTful that expose reliable APIs to client systems, this course teaches the participants a lot of best design practices, performance optimization principles and implementation skills, which can be included to any modern Java enterprise application.
This specific Code.Learn program lasts with 24 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 Spring Data JPA itself, covering the following topics (high-level approach):
- Introduction to basics
- Spring Boot vs. Spring vs. Spring MVC
- Why Spring Boot is so popular – What Spring Boot is not
- Spring Framework Basics (dependency injection, autowiring, bean scope, bean lifecycle, component scan)
- 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
- Spring Security and RESTful applications
- Health monitoring of a RESTful application with Actuator
- Testing the service layer
- Testing the Rest controller
- Manual testing
- Spring Data JPA
- Spring Data vs. Spring JPA vs. Hibernate
- Entity class
- One-to-one relationship (uni and bidirectional)
- One-to-many relationship (uni and bidirectional)
- Benchmarking / Optimizing relationships for performance
- Queries with JPQL
- Named Queries
- Criteria Queries
- Transaction management
- Lazy vs. Eager fetch
- Testing JPA
All covered topics are followed by realistic hands-on code examples that solve practical problems.
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.