In this post, we’ll explore how to use GitHub Copilot to generate Java code and unit tests with minimal manual input. Using a real-world example—a mortgage calculator service—you’ll see how Copilot can help write both the core logic and the corresponding unit tests. Whether you’re new to AI-assisted development or curious about Copilot’s capabilities in a Java environment, this tutorial will give you practical insight into how it works—and where human oversight still matters.
About the Author

Testing Spring Boot Rest APIs with Rest-Assured
Creating RESTful APIs with Spring Boot is a straightforward process, making it a popular choice for a variety of applications, from UI to batch processing. The same API created can be used anywhere, whether it’s called from a UI application or batch applications. However, testing these APIs to ensure they work correctly can be challenging. In this article, I’ll introduce …
Optimizing Output File Testing in Spring Batch
It’s quite common to build Spring Batch jobs in which the output is a file for distribution to another team, or to another business. These text files can be in various formats from delimited, fixed length, XML, or some other structure such as an MT950 formatted file (common in financial institutions). In a previous article, I discussed testing practices using …
Spring Batch Job Flow Using a JobExecutionDecider
In this tutorial for Spring Batch, we’re going to take a look at Programmatic Flow decisions in a Spring Batch job using Spring’s JobExecutionDecider. Spring Batch is a pretty powerful framework and this is another useful tool to have in your Spring Batch toolbox.
To demonstrate, I’ll use a scenario that came up recently while working on my client’s project. After explaining the situation and my goals, I’ll jump into a detailed, step-by-step guide. Let’s get started!
Using JAXB And StaxEventItemReader To Read XML Data
In one of my previous Spring Batch blog articles, I wrote about the need to read a set of data, process the data, and export the transformed data into XML for consumption by another system. In this blog, I’ll be doing the opposite. I’ll show you how to read data from an XML format instead.












