Take on the role of backend developer at BestInsurance, an insurance company that hopes to attract more customers by offering new life insurance policies. In this series of six liveProjects, you’ll extend the features of BestInsurance’s online portal by adding an API where customers can register and subscribe to the new policies. Using Spring JPA and Spring Web, you’ll build a basic Spring Boot application, create a persistence layer for it to preserve data, and implement RESTful create, read, update, and delete (CRUD) services that allow employees to manage and query data as needed. To improve the employee user experience, you’ll add REST services, such as pagination and aggregate functions, that decrease page latency. You’ll finish by securing the API with Spring Security, ensuring it meets BestInsurance's high standards. When you’re finished, you’ll have the experience and skills to implement production-ready, secure REST APIs using Spring Framework.
This project goes in depth in many important aspects of Spring Boot.
BestInsurance, an insurance company, wants to attract new customers. As a backend developer, your task is to extend the features of the company’s portal to let customers subscribe to new policies. You’ll use Spring Initializr to create the project structure for a basic Spring Boot application, and you’ll configure the necessary dependencies. You’ll build Docker images for running the application, using both Maven and Gradle plugins, and you’ll create Docker compose services for running the application using your Docker images. When you’re done, you’ll have built a basic Spring Boot application that’s ready to connect to a database.
BestInsurance, an insurance company, has an online portal with a newly built application for providing features it hopes will attract new customers. As a backend developer, it’s your job to create the persistence layer for the application. You’ll define the database tables and configure a Liquibase changelog to automatically create the tables using SQL. This will allow you to track and manage database versions in order to avoid data loss in production when you change the model. To persist your data, you’ll map Java classes to the database tables using Spring JPA, then implement the basic create, read, update, and delete (CRUD) operations through the JPA repositories for the persistent entities. To verify your mapping is correct, you’ll implement unit testing with JUnit 5 tests, TestContainers, and a PostgreSQL database.
BestInsurance has an online portal with a newly built application for providing features it hopes will attract new customers. As a backend developer for the insurance company, it’s your job to implement create, read, update, and delete (CRUD) services that allow front-office staff to manage and query data as needed to perform their daily tasks. You’ll define your CRUD API, using Spring Web and the DTO pattern, and observe your components in action. Leveraging inheritance and generic types in Java, you’ll refactor the code as necessary and complete the implementation of your RESTful APIs. To ensure your solution meets BestInsurance’s high standards, you’ll test the services with Spring Test and MockMvc.
BestInsurance has a rapidly growing customer base and happy front-office employees, thanks to a newly built API that lets customers subscribe to policies and lets front-office employees narrow their searches with custom filters. But the back-office staff is unhappy with the high latency of the user interface. As a backend developer, you’ll solve this problem by adding pagination with Spring Data JPA, preventing the page from loading all the customer data at once. You’ll use JPQL to add aggregate functions that return information the back office needs, such as revenue and customer count by state. You’ll implement a REST service for uploading policy subscription data provided in CSV format and importing it into your database. You’ll also leverage domain events for sending messages when subscriptions are saved, updated, or deleted. When you’re done, you’ll know how to add REST API services, and the back-office employees will thank you for making their jobs easier!
As a backend developer for BestInsurance, your task is to secure its RESTful API using Spring Security. The insurance company is running the API in a server that supports OAuth 2.0 authentication. Using the server’s specs, you’ll reproduce the behavior of the authorization server with Spring Security in order to have a local server that is easily configurable for testing purposes. You’ll implement role-based authorization based on the content of JSON Web Tokens (JWT), from the authorization server point of view. This authorization will impact API security, so you will implement a resource server with Spring Security. You’ll also implement unit testing with Spring Security Test, and configure SwaggerUI to make requests that are authorized according to OAuth 2.0, using SpringDocs. When you’re finished you’ll have highly useful Spring Security skills—and confidence that your API is secure!
These liveProjects are for beginner and intermediate Java programmers interested in learning how to design and implement REST services using Spring and JPA. To begin these liveProjects you’ll need to be familiar with the following:TOOLS
In this liveProject series, you’ll learn to design and implement REST services using Spring and JPA.
geekle is based on a wordle clone.