VOOZH about

URL: https://www.coursera.org/learn/packt-spring-jpa-testing-and-legacy-microservices-jvjhr

⇱ Spring, JPA, Testing, and Legacy Microservices | Coursera


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

Included with

Ask Coursera

Gain insight into a topic and learn the fundamentals.
Intermediate level

Recommended experience

2 weeks to complete
at 10 hours a week
Flexible schedule
Learn at your own pace

Gain insight into a topic and learn the fundamentals.
Intermediate level

Recommended experience

2 weeks to complete
at 10 hours a week
Flexible schedule
Learn at your own pace

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.

Details to know

Shareable certificate

Add to your LinkedIn profile

Assessments

9 assignments

Taught in English

Build your subject-matter expertise

This course is part of the Master Microservices with Spring Boot and Spring Cloud Specialization
When you enroll in this course, you'll also be enrolled in this Specialization.
  • 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 videosTotal 81 minutes
  • Step 01 - Getting Started with Spring Framework - Goals3 minutes
  • Step 02 - Setting up New Spring Project with Spring Initializr4 minutes
  • Step 03 - Iteration 1 - Building Tightly Coupled GameRunner and MarioGame8 minutes
  • Step 04 - Understanding Tight Coupling3 minutes
  • Step 05 - Iteration 2 - Loose Coupling Level 1 - Interfaces4 minutes
  • Step 06 - Exploring Loose Coupling with Interfaces - PacmanGame2 minutes
  • Step 07 - Iteration 3 - Loose Coupling Level 2 - Spring Framework9 minutes
  • Step 08 - Q1 - Spring Framework - Understanding what's happening in Background10 minutes
  • Step 09 - Q2 - Spring Framework - Understanding Important Terminology8 minutes
  • Step 10 - Q3 - Spring Framework - Does Spring Framework Add Value?11 minutes
  • Step 11 - Q4 - Spring Framework - Running Super Contra2 minutes
  • Step 12 - Q5 - Spring Framework - Maven6 minutes
  • Step 13 - Exploring Spring Framework Dependency Injection Types5 minutes
  • Step 14 - Exploring Spring Modules2 minutes
  • Step 15 - Exploring Spring Projects3 minutes
  • Step 16 - Getting Started with Spring Framework - Review1 minute
2 readingsTotal 20 minutes
  • Introduction to the course 'Spring, JPA, Testing, and Legacy Microservices'10 minutes
  • Full Course Resources10 minutes
1 assignmentTotal 15 minutes
  • Appendix - Introduction to Spring Framework in 10 Steps (Actually 16) - Assessment15 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 videosTotal 74 minutes
  • Step 01 - Getting Started with Spring Boot - Goals2 minutes
  • Step 02 - Understanding the World Before Spring Boot - 10000 Feet Overview3 minutes
  • Step 03 - Setting up New Spring Boot Project with Spring Initializr7 minutes
  • Step 04 - Build a Hello World API with Spring Boot9 minutes
  • Step 05 - Understanding the Goal of Spring Boot3 minutes
  • Step 06 - Understanding Spring Boot Magic - Spring Boot Starter Projects5 minutes
  • Step 07 - Understanding Spring Boot Magic - Auto Configuration8 minutes
  • Step 08 - Build Faster with Spring Boot DevTools4 minutes
  • Step 09 - Get Production Ready with Spring Boot - 1 - Profiles7 minutes
  • Step 10 - Get Production Ready with Spring Boot - 2 - ConfigurationProperties8 minutes
  • Step 11 - Get Production Ready with Spring Boot - 3 - Embedded Servers6 minutes
  • Step 12 - Get Production Ready with Spring Boot - 4 - Actuator8 minutes
  • Step 13 - Understanding Spring Boot vs Spring vs Spring MVC4 minutes
  • Step 14 - Getting Started with Spring Boot - Review1 minute
1 assignmentTotal 15 minutes
  • Appendix - Introduction to Spring Boot in 12 Steps - Assessment15 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 videosTotal 37 minutes
  • 01 Step 01 - What is JUnit and Unit Testing?5 minutes
  • 01 Step 02 - Your First JUnit Project and Green Bar11 minutes
  • 01 Step 03 - Your First Code and First Unit Test5 minutes
  • 01 Step 04 - Exploring other assert methods8 minutes
  • 01 Step 05 - Exploring few important JUnit annotations7 minutes
1 assignmentTotal 15 minutes
  • Appendix - Introduction to Junit - Assessment15 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 videosTotal 36 minutes
  • 02 Step 00 - Introduction to Section - Mockito in 5 Steps2 minutes
  • 02 Step 01 - Setting up a Spring Boot Project7 minutes
  • 02 Step 02 - Understanding problems with Stubs8 minutes
  • 02 Step 03 - Writing your first Mockito test with Mocks6 minutes
  • 02 Step 04 - Simplifying Tests with Mockito Annotations - @Mock, @InjectMocks5 minutes
  • 02 Step 05 - Exploring Mocks further by Mocking List interface8 minutes
1 assignmentTotal 15 minutes
  • Appendix - Introduction to Mockito - Assessment15 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 videosTotal 49 minutes
  • Maven Step 01 - Introduction to Maven2 minutes
  • Maven Step 02 - Creating a Spring Boot Project with Maven4 minutes
  • Maven Step 03 - Exploring Maven pom.xml for Spring Boot Project9 minutes
  • Maven Step 04 - Exploring Maven Parent Pom for Spring Boot Project7 minutes
  • Maven Step 05 - Exploring Maven Further6 minutes
  • Maven Step 06 - Exploring Maven Build Lifecycle with a Spring Boot Project4 minutes
  • Maven Step 07 - How does Maven Work?8 minutes
  • Maven Step 08 - Playing with Maven Commands4 minutes
  • Maven Step 09 - How are Spring Projects Versioned?6 minutes
1 assignmentTotal 15 minutes
  • Appendix - Introduction to Maven - Assessment15 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 videosTotal 20 minutes
  • Gradle Step 01 - Getting Started with Gradle2 minutes
  • Gradle Step 02 - Creating a Spring Boot Project with Gradle4 minutes
  • Gradle Step 03 - Exploring Gradle Build and Settings Files4 minutes
  • Gradle Step 04 - Exploring Gradle Plugins for Java and Spring Boot5 minutes
  • Gradle Step 05 - Maven or Gradle - Which one to use for Spring Boot Projects?5 minutes
1 assignmentTotal 15 minutes
  • Appendix - Introduction to Gradle - Assessment15 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 videosTotal 74 minutes
  • Step 01 - Getting Started with JPA and Hibernate - Goals1 minute
  • Step 02 - Setting up New Spring Boot Project for JPA and Hibernate7 minutes
  • Step 03 - Launching up H2 Console and Creating Course Table in H27 minutes
  • Step 04 - Getting Started with Spring JDBC4 minutes
  • Step 05 - Inserting Hardcoded Data using Spring JDBC8 minutes
  • Step 06 - Inserting and Deleting Data using Spring JDBC9 minutes
  • Step 07 - Querying Data using Spring JDBC6 minutes
  • Step 08 - Getting Started with JPA and EntityManager12 minutes
  • Step 09 - Exploring the Magic of JPA3 minutes
  • Step 10 - Getting Started with Spring Data JPA6 minutes
  • Step 11 - Exploring Features of Spring Data JPA5 minutes
  • Step 12 - Understanding Difference Between Hibernate and JPA5 minutes
1 assignmentTotal 15 minutes
  • Appendix - Introduction to JPA in 10 Steps - V2 - Assessment15 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 videosTotal 49 minutes
  • Step 00 - Introduction to Functional Programming - Overview1 minute
  • Step 01 - Getting Started with Functional Programming with Java6 minutes
  • Step 02 - Writing Your First Java Functional Program6 minutes
  • Step 03 - Improving Java Functional Program with Filter8 minutes
  • Step 04 - Using Lambda Expression to Enhance Your Functional Program5 minutes
  • Step 05 - Do Functional Programming Exercises with Streams, Filters, and Lambdas6 minutes
  • Step 06 - Using Map in Functional Programs - with Exercises6 minutes
  • Step 07 - Understanding Optional Class in Java7 minutes
  • Step 08 - Quick Review of Functional Programming Basics3 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 videosTotal 31 minutes
  • Quick Review - Java New Features1 minute
  • How is Java Marching Forward6 minutes
  • Primary Goals Behind Recent Java Releases6 minutes
  • Important Java Versions and Most Important Features18 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 videosTotal 244 minutes
  • Step 00 - Microservice Components - Standardizing Ports and URL3 minutes
  • Step 01 - Part 1 - Intro to Limits Microservice and Spring Cloud Config Server5 minutes
  • Step 01 - Part 2 - Setting up Limits Microservice6 minutes
  • Step 02 - Creating a Hard-Coded Limits Service5 minutes
  • Step 03 - Enhance Limits Service to Get Configuration from Application Properties5 minutes
  • Step 04 - Setting up Spring Cloud Config Server4 minutes
  • Step 05 - Installing Git2 minutes
  • Step 06 - Creating Local Git Repository5 minutes
  • Step 07 - Connect Spring Cloud Config Server to Local Git Repository5 minutes
  • Step 08 - Configuration for Multiple Environments in Git Repository6 minutes
  • Step 09 - Connect Limits Service to Spring Cloud Config Server5 minutes
  • Step 10 - Configuring Profiles for Limits Service6 minutes
  • Step 11 - A Review of Spring Cloud Config Server4 minutes
  • Step 12 - Introduction to Currency Conversion and Currency Exchange Microservice3 minutes
  • Step 13 - Setting up Currency Exchange Microservice4 minutes
  • Step 14 - Create a Simple Hard-Coded Currency Exchange Service6 minutes
  • Step 15 - Setting up Dynamic Port in the Response7 minutes
  • Step 16 - Configure JPA and Initialized Data8 minutes
  • Step 17 - Create a JPA Repository5 minutes
  • Step 18 - Setting up Currency Conversion Microservice2 minutes
  • Step 19 - Creating a Service for Currency Conversion7 minutes
  • Step 20 - Invoking Currency Exchange Microservice from Currency Conversion Micro8 minutes
  • Step 21 - Using Feign REST Client for Service Invocation12 minutes
  • Step 22 - Setting up Client-Side Load Balancing with Ribbon5 minutes
  • Step 23 - Running Client-Side Load Balancing with Ribbon5 minutes
  • Step 24 - Understand the Need for a Naming Server3 minutes
  • Step 25 - Setting up Eureka Naming Server5 minutes
  • Step 26 - Connecting Currency Conversion Microservice to Eureka3 minutes
  • Step 27 - Connecting Currency Exchange Microservice to Eureka3 minutes
  • Step 28 - Distributing Calls Using Eureka and Ribbon7 minutes
  • Step 29 - A Review of Implementing Eureka, Ribbon, and Feign4 minutes
  • Step 30 - Introduction to API Gateways3 minutes
  • Step 31 - Setting up Zuul API Gateway5 minutes
  • Step 32 - Implementing Zuul Logging Filter6 minutes
  • Step 33 - Executing a Request through Zuul API Gateway5 minutes
  • Step 34 - Setting up Zuul API Gateway Between Microservice Invocations7 minutes
  • Step 35 - Introduction to Distributed Tracing3 minutes
  • Step 36 - Implementing Spring Cloud Sleuth9 minutes
  • Step 37 - Introduction to Distributed Tracing with Zipkin5 minutes
  • Step 38 - Installing Rabbit MQ5 minutes
  • Step 39 - Setting up Distributed Tracing with Zipkin7 minutes
  • Step 40 - Connecting Microservices to Zipkin4 minutes
  • Step 41 - Using Zipkin UI Dashboard to Trace Requests7 minutes
  • Step 42 - Understanding the Need for Spring Cloud Bus9 minutes
  • Step 43 - Implementing Spring Cloud Bus5 minutes
  • Step 44 - Fault Tolerance with Hystrix7 minutes
1 readingTotal 10 minutes
  • Conclusion to the Course 'Spring, JPA, Testing, and Legacy Microservices10 minutes
2 assignmentsTotal 75 minutes
  • Full Course Practice Assessment15 minutes
  • Full Course Assessment60 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

Offered by

Why people choose Coursera for their career

👁 Image

Felipe M.

Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
👁 Image

Jennifer J.

Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
👁 Image

Larry W.

Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
👁 Image

Chaitanya A.

"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

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.

To get the most out of this course, you should have a solid understanding of Java programming. Familiarity with basic object-oriented programming (OOP) concepts is crucial. While prior experience with Spring Framework or microservices is not strictly required, it would be beneficial. Basic knowledge of relational databases and SQL will also help, especially when working with JPA and Hibernate. If you're new to these topics, you may want to review Java fundamentals before starting the course.

This course is designed for developers who want to advance their skills in Java application development, particularly in building scalable and maintainable enterprise systems. It is ideal for software engineers, backend developers, and anyone interested in mastering Spring, JPA, testing methodologies, and microservices. If you are looking to transition from monolithic applications to microservices or modernize legacy systems, this course will provide you with the necessary tools and knowledge.

The course consists of 11 hours of video content, which you can complete at your own pace. The actual time it takes to finish will depend on your familiarity with the material and the depth at which you wish to engage with the course content. On average, learners may complete the course in a few weeks if studying part-time, but it can take more time if you are working through exercises and projects more thoroughly.

To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.

When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.

Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.

Financial aid available,