Spring, JPA, Testing, and Legacy Microservices
Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.
Spring, JPA, Testing, and Legacy Microservices
This course is part of Master Microservices with Spring Boot and Spring Cloud Specialization
Included with
Ask Coursera
Recommended experience
Recommended experience
What you'll learn
Build scalable applications with Spring and Spring Boot.
Implement unit testing strategies using JUnit and Mockito in Spring applications.
Manage persistent data using JPA and integrate it with Spring applications.
Set up and manage microservices architectures using Spring Cloud and Spring Boot.
Skills you'll gain
Details to know
See how employees at top companies are mastering in-demand skills
Build your subject-matter expertise
- Learn new concepts from industry experts
- Gain a foundational understanding of a subject or tool
- Develop job-relevant skills with hands-on projects
- Earn a shareable career certificate
There are 10 modules in this course
This course features Coursera Coach!
A smarter way to learn with interactive, real-time conversations that help you test your knowledge, challenge assumptions, and deepen your understanding as you progress through the course. This comprehensive course is designed to guide you through the world of Java development, covering key technologies like Spring, JPA, Mockito, and Microservices. You will learn to build robust, scalable applications, master unit testing with JUnit and Mockito, and gain hands-on experience in managing legacy microservices and databases with Spring Data JPA. By completing this course, you will develop the expertise to design and implement modern enterprise-level applications. The journey begins with foundational concepts, introducing Spring and Spring Boot to streamline your application development process. As you progress, you’ll dive into practical examples, including building tightly coupled applications and advancing to loose coupling techniques with Spring’s dependency injection. The course also explores how to manage data using JPA and Hibernate, followed by the setup of advanced Spring Cloud microservices, ensuring you are well-versed in both application development and testing strategies. This course is ideal for developers who want to strengthen their skills in modern Java development and microservices. Whether you're an aspiring Java developer or someone looking to migrate legacy systems to microservices architecture, this course will provide you with the tools and expertise needed. The prerequisite for this course includes basic knowledge of Java and familiarity with object-oriented programming concepts. The difficulty level is Intermediate. By the end of the course, you will be able to efficiently develop Java applications using Spring and Spring Boot, implement unit tests with JUnit and Mockito, integrate JPA for persistent storage, and set up microservices using Spring Cloud. You will also have a deeper understanding of managing legacy systems and enhancing them with modern architectures.
In this module, we will provide a thorough introduction to the Spring Framework, covering its essential goals and advantages for Java development. You’ll learn how to efficiently set up a Spring project using Spring Initializr and discover key concepts like loose coupling and dependency injection. By the end of this module, you’ll understand how to leverage Spring to build scalable, maintainable Java applications.
What's included
16 videos2 readings1 assignment
16 videos•Total 81 minutes
- Step 01 - Getting Started with Spring Framework - Goals•3 minutes
- Step 02 - Setting up New Spring Project with Spring Initializr•4 minutes
- Step 03 - Iteration 1 - Building Tightly Coupled GameRunner and MarioGame•8 minutes
- Step 04 - Understanding Tight Coupling•3 minutes
- Step 05 - Iteration 2 - Loose Coupling Level 1 - Interfaces•4 minutes
- Step 06 - Exploring Loose Coupling with Interfaces - PacmanGame•2 minutes
- Step 07 - Iteration 3 - Loose Coupling Level 2 - Spring Framework•9 minutes
- Step 08 - Q1 - Spring Framework - Understanding what's happening in Background•10 minutes
- Step 09 - Q2 - Spring Framework - Understanding Important Terminology•8 minutes
- Step 10 - Q3 - Spring Framework - Does Spring Framework Add Value?•11 minutes
- Step 11 - Q4 - Spring Framework - Running Super Contra•2 minutes
- Step 12 - Q5 - Spring Framework - Maven•6 minutes
- Step 13 - Exploring Spring Framework Dependency Injection Types•5 minutes
- Step 14 - Exploring Spring Modules•2 minutes
- Step 15 - Exploring Spring Projects•3 minutes
- Step 16 - Getting Started with Spring Framework - Review•1 minute
2 readings•Total 20 minutes
- Introduction to the course 'Spring, JPA, Testing, and Legacy Microservices'•10 minutes
- Full Course Resources•10 minutes
1 assignment•Total 15 minutes
- Appendix - Introduction to Spring Framework in 10 Steps (Actually 16) - Assessment•15 minutes
In this module, we will explore the fundamentals of Spring Boot, focusing on how it simplifies Java application development by minimizing configuration and boilerplate code. You’ll learn how to quickly set up and build a basic Spring Boot project, as well as delve into production-ready features such as embedded servers and Spring Boot Actuator for monitoring and health checks.
What's included
14 videos1 assignment
14 videos•Total 74 minutes
- Step 01 - Getting Started with Spring Boot - Goals•2 minutes
- Step 02 - Understanding the World Before Spring Boot - 10000 Feet Overview•3 minutes
- Step 03 - Setting up New Spring Boot Project with Spring Initializr•7 minutes
- Step 04 - Build a Hello World API with Spring Boot•9 minutes
- Step 05 - Understanding the Goal of Spring Boot•3 minutes
- Step 06 - Understanding Spring Boot Magic - Spring Boot Starter Projects•5 minutes
- Step 07 - Understanding Spring Boot Magic - Auto Configuration•8 minutes
- Step 08 - Build Faster with Spring Boot DevTools•4 minutes
- Step 09 - Get Production Ready with Spring Boot - 1 - Profiles•7 minutes
- Step 10 - Get Production Ready with Spring Boot - 2 - ConfigurationProperties•8 minutes
- Step 11 - Get Production Ready with Spring Boot - 3 - Embedded Servers•6 minutes
- Step 12 - Get Production Ready with Spring Boot - 4 - Actuator•8 minutes
- Step 13 - Understanding Spring Boot vs Spring vs Spring MVC•4 minutes
- Step 14 - Getting Started with Spring Boot - Review•1 minute
1 assignment•Total 15 minutes
- Appendix - Introduction to Spring Boot in 12 Steps - Assessment•15 minutes
In this module, we will introduce you to JUnit, a powerful framework for unit testing in Java. You’ll learn how to set up a project and write your first test cases, utilizing key JUnit features such as assertions and annotations. By the end of the module, you’ll have the foundation to create automated tests that ensure your code works as expected.
What's included
5 videos1 assignment
5 videos•Total 37 minutes
- 01 Step 01 - What is JUnit and Unit Testing?•5 minutes
- 01 Step 02 - Your First JUnit Project and Green Bar•11 minutes
- 01 Step 03 - Your First Code and First Unit Test•5 minutes
- 01 Step 04 - Exploring other assert methods•8 minutes
- 01 Step 05 - Exploring few important JUnit annotations•7 minutes
1 assignment•Total 15 minutes
- Appendix - Introduction to Junit - Assessment•15 minutes
In this module, we will explore Mockito, a popular Java mocking framework used to simulate dependencies in unit tests. You’ll learn how to integrate Mockito with Spring Boot and write effective mock-based tests. Through hands-on examples, you’ll master techniques to isolate your code, mock complex objects, and simplify test writing.
What's included
6 videos1 assignment
6 videos•Total 36 minutes
- 02 Step 00 - Introduction to Section - Mockito in 5 Steps•2 minutes
- 02 Step 01 - Setting up a Spring Boot Project•7 minutes
- 02 Step 02 - Understanding problems with Stubs•8 minutes
- 02 Step 03 - Writing your first Mockito test with Mocks•6 minutes
- 02 Step 04 - Simplifying Tests with Mockito Annotations - @Mock, @InjectMocks•5 minutes
- 02 Step 05 - Exploring Mocks further by Mocking List interface•8 minutes
1 assignment•Total 15 minutes
- Appendix - Introduction to Mockito - Assessment•15 minutes
In this module, we will introduce Maven, an essential tool for automating builds and managing dependencies in Java projects. You’ll learn how to create a Maven-based Spring Boot project, explore its configuration, and understand how Maven automates tasks to simplify your workflow. By the end, you'll be able to leverage Maven to streamline project builds and optimize dependency management.
What's included
9 videos1 assignment
9 videos•Total 49 minutes
- Maven Step 01 - Introduction to Maven•2 minutes
- Maven Step 02 - Creating a Spring Boot Project with Maven•4 minutes
- Maven Step 03 - Exploring Maven pom.xml for Spring Boot Project•9 minutes
- Maven Step 04 - Exploring Maven Parent Pom for Spring Boot Project•7 minutes
- Maven Step 05 - Exploring Maven Further•6 minutes
- Maven Step 06 - Exploring Maven Build Lifecycle with a Spring Boot Project•4 minutes
- Maven Step 07 - How does Maven Work?•8 minutes
- Maven Step 08 - Playing with Maven Commands•4 minutes
- Maven Step 09 - How are Spring Projects Versioned?•6 minutes
1 assignment•Total 15 minutes
- Appendix - Introduction to Maven - Assessment•15 minutes
In this module, we will introduce Gradle, a modern build automation tool for Java projects, offering an alternative to Maven. You’ll learn how to set up a Spring Boot project using Gradle, configure dependencies, and explore key plugins. By the end of this module, you’ll be able to choose between Gradle and Maven, making informed decisions for your Java development workflow.
What's included
5 videos1 assignment
5 videos•Total 20 minutes
- Gradle Step 01 - Getting Started with Gradle•2 minutes
- Gradle Step 02 - Creating a Spring Boot Project with Gradle•4 minutes
- Gradle Step 03 - Exploring Gradle Build and Settings Files•4 minutes
- Gradle Step 04 - Exploring Gradle Plugins for Java and Spring Boot•5 minutes
- Gradle Step 05 - Maven or Gradle - Which one to use for Spring Boot Projects?•5 minutes
1 assignment•Total 15 minutes
- Appendix - Introduction to Gradle - Assessment•15 minutes
In this module, we will provide an in-depth exploration of JPA and Hibernate, focusing on how they simplify database operations in Java applications. You’ll learn how to set up Spring Boot with JPA, work with databases, and execute common CRUD operations. Additionally, we will dive into advanced features of Spring Data JPA for efficient data management.
What's included
12 videos1 assignment
12 videos•Total 74 minutes
- Step 01 - Getting Started with JPA and Hibernate - Goals•1 minute
- Step 02 - Setting up New Spring Boot Project for JPA and Hibernate•7 minutes
- Step 03 - Launching up H2 Console and Creating Course Table in H2•7 minutes
- Step 04 - Getting Started with Spring JDBC•4 minutes
- Step 05 - Inserting Hardcoded Data using Spring JDBC•8 minutes
- Step 06 - Inserting and Deleting Data using Spring JDBC•9 minutes
- Step 07 - Querying Data using Spring JDBC•6 minutes
- Step 08 - Getting Started with JPA and EntityManager•12 minutes
- Step 09 - Exploring the Magic of JPA•3 minutes
- Step 10 - Getting Started with Spring Data JPA•6 minutes
- Step 11 - Exploring Features of Spring Data JPA•5 minutes
- Step 12 - Understanding Difference Between Hibernate and JPA•5 minutes
1 assignment•Total 15 minutes
- Appendix - Introduction to JPA in 10 Steps - V2 - Assessment•15 minutes
In this module, we will introduce functional programming concepts, showcasing how they can enhance your Java applications. You’ll learn how to apply key techniques like immutability, higher-order functions, and lambda expressions. By the end of this module, you’ll have the skills to write clean, efficient, and maintainable functional Java code.
What's included
9 videos
9 videos•Total 49 minutes
- Step 00 - Introduction to Functional Programming - Overview•1 minute
- Step 01 - Getting Started with Functional Programming with Java•6 minutes
- Step 02 - Writing Your First Java Functional Program•6 minutes
- Step 03 - Improving Java Functional Program with Filter•8 minutes
- Step 04 - Using Lambda Expression to Enhance Your Functional Program•5 minutes
- Step 05 - Do Functional Programming Exercises with Streams, Filters, and Lambdas•6 minutes
- Step 06 - Using Map in Functional Programs - with Exercises•6 minutes
- Step 07 - Understanding Optional Class in Java•7 minutes
- Step 08 - Quick Review of Functional Programming Basics•3 minutes
In this module, we will review the latest features in Java, focusing on the most significant advancements in performance, modularity, and security. You’ll gain an understanding of how Java has evolved to meet the needs of modern software development. Through a Q&A format, we’ll explore these new features and examine their practical applications in real-world projects.
What's included
4 videos
4 videos•Total 31 minutes
- Quick Review - Java New Features•1 minute
- How is Java Marching Forward•6 minutes
- Primary Goals Behind Recent Java Releases•6 minutes
- Important Java Versions and Most Important Features•18 minutes
In this extensive module, we will dive deep into building microservices using Spring Cloud and Spring Boot. You’ll learn how to set up the core components, including Spring Cloud Config Server, Eureka, and Ribbon, while also exploring fault tolerance, load balancing, and service discovery. By the end of the module, you will have hands-on experience in creating scalable, distributed systems using Spring Cloud.
What's included
46 videos1 reading2 assignments
46 videos•Total 244 minutes
- Step 00 - Microservice Components - Standardizing Ports and URL•3 minutes
- Step 01 - Part 1 - Intro to Limits Microservice and Spring Cloud Config Server•5 minutes
- Step 01 - Part 2 - Setting up Limits Microservice•6 minutes
- Step 02 - Creating a Hard-Coded Limits Service•5 minutes
- Step 03 - Enhance Limits Service to Get Configuration from Application Properties•5 minutes
- Step 04 - Setting up Spring Cloud Config Server•4 minutes
- Step 05 - Installing Git•2 minutes
- Step 06 - Creating Local Git Repository•5 minutes
- Step 07 - Connect Spring Cloud Config Server to Local Git Repository•5 minutes
- Step 08 - Configuration for Multiple Environments in Git Repository•6 minutes
- Step 09 - Connect Limits Service to Spring Cloud Config Server•5 minutes
- Step 10 - Configuring Profiles for Limits Service•6 minutes
- Step 11 - A Review of Spring Cloud Config Server•4 minutes
- Step 12 - Introduction to Currency Conversion and Currency Exchange Microservice•3 minutes
- Step 13 - Setting up Currency Exchange Microservice•4 minutes
- Step 14 - Create a Simple Hard-Coded Currency Exchange Service•6 minutes
- Step 15 - Setting up Dynamic Port in the Response•7 minutes
- Step 16 - Configure JPA and Initialized Data•8 minutes
- Step 17 - Create a JPA Repository•5 minutes
- Step 18 - Setting up Currency Conversion Microservice•2 minutes
- Step 19 - Creating a Service for Currency Conversion•7 minutes
- Step 20 - Invoking Currency Exchange Microservice from Currency Conversion Micro•8 minutes
- Step 21 - Using Feign REST Client for Service Invocation•12 minutes
- Step 22 - Setting up Client-Side Load Balancing with Ribbon•5 minutes
- Step 23 - Running Client-Side Load Balancing with Ribbon•5 minutes
- Step 24 - Understand the Need for a Naming Server•3 minutes
- Step 25 - Setting up Eureka Naming Server•5 minutes
- Step 26 - Connecting Currency Conversion Microservice to Eureka•3 minutes
- Step 27 - Connecting Currency Exchange Microservice to Eureka•3 minutes
- Step 28 - Distributing Calls Using Eureka and Ribbon•7 minutes
- Step 29 - A Review of Implementing Eureka, Ribbon, and Feign•4 minutes
- Step 30 - Introduction to API Gateways•3 minutes
- Step 31 - Setting up Zuul API Gateway•5 minutes
- Step 32 - Implementing Zuul Logging Filter•6 minutes
- Step 33 - Executing a Request through Zuul API Gateway•5 minutes
- Step 34 - Setting up Zuul API Gateway Between Microservice Invocations•7 minutes
- Step 35 - Introduction to Distributed Tracing•3 minutes
- Step 36 - Implementing Spring Cloud Sleuth•9 minutes
- Step 37 - Introduction to Distributed Tracing with Zipkin•5 minutes
- Step 38 - Installing Rabbit MQ•5 minutes
- Step 39 - Setting up Distributed Tracing with Zipkin•7 minutes
- Step 40 - Connecting Microservices to Zipkin•4 minutes
- Step 41 - Using Zipkin UI Dashboard to Trace Requests•7 minutes
- Step 42 - Understanding the Need for Spring Cloud Bus•9 minutes
- Step 43 - Implementing Spring Cloud Bus•5 minutes
- Step 44 - Fault Tolerance with Hystrix•7 minutes
1 reading•Total 10 minutes
- Conclusion to the Course 'Spring, JPA, Testing, and Legacy Microservices•10 minutes
2 assignments•Total 75 minutes
- Full Course Practice Assessment•15 minutes
- Full Course Assessment•60 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Instructor
Explore more from Software Development
Why people choose Coursera for their career
Frequently asked questions
This course focuses on core technologies used in modern Java development, including Spring Framework, JPA (Java Persistence API), testing techniques with JUnit and Mockito, and microservices architecture with Spring Cloud. These are fundamental skills for developers working with enterprise-level Java applications. Understanding these technologies helps developers build scalable, maintainable, and robust systems, which is especially important in today's software development landscape where microservices and cloud technologies are increasingly in demand.
This course is part of a larger specialization that covers the essential tools and frameworks for developing modern Java applications. You will explore Spring Framework and Spring Boot for building enterprise applications, JPA for database management, and testing techniques using JUnit and Mockito. Additionally, you'll dive into legacy microservices and how to leverage Spring Cloud for building resilient and scalable systems, providing a holistic view of Java-based application development.
Upon completing this specialization, you will have a deep understanding of how to build, test, and deploy Java-based enterprise applications using modern frameworks like Spring and Spring Boot. You will be able to design microservices architectures, manage data with JPA and Hibernate, and apply industry-standard testing practices. Furthermore, you will gain the skills to integrate legacy systems with modern microservices, making you capable of handling complex software development challenges in real-world projects.
More questions
Financial aid available,
