Docker

How to build application image with Dockerfile?

Since this is a Java application, I need to use an image that can run a Java application. We need the Dockerfile and to use the OpenJDK base image. This Dockerfile is a recipe for building a Docker image that runs a Java application. Each instruction in the Dockerfile has a specific purpose. Let’s go…

Read More

How to handle exceptions in Spring?

Exception handling in APIs is essential to ensure clear and efficient communication between the server and client, preventing unexpected interruptions and enhancing the user experience. By properly handling exceptions, the API can return user-friendly and informative error messages, making it easier to identify and resolve issues. Additionally, this practice improves the application’s security and robustness,…

Read More

How do Spring IoC and Dependency Injection work?

Before discussing how Inversion of Control (IoC) and Dependency Injection (DI) work in Spring, it’s essential to understand what each of them means. If you have any questions, check out this post where I cover these two very important concepts. Spring has a container that manages Beans. Beans are objects managed by the Spring container…

Read More

How to use Rest Controllers in Spring?

When creating a REST API in Spring, it is necessary to use some annotations, as this allows us to create the endpoints. All of this is necessary because we need to follow the “Richardson Maturity Model” to maintain a REST API with a good level of maturity. If you want to learn more about the…

Read More
banner api

What is Richardson Maturity Model?

It is a model (developed by Leonard Richardson) to improve API maturity. To achieve the glory of REST, the API must have maturity levels. There are 4 levels, and next we will see how each of them works. Level 0: The Swamp of POX This level defines that the use of the HTTP protocol is…

Read More

What are Specifications in Spring Data Jpa?

Specifications allows the creation of dynamic queries programmatically using the provided filters in a flexible way. “JPA 2 introduces a criteria API that you can use to build queries programmatically. By writing a criteria, you define the where clause of a query for a domain class. Taking another step back, these criteria can be regarded as…

Read More
Flyway and Spring

How to perform database schema versioning with Flyway and Spring?

Flyway is a tool used for database migration control. Migrations are executed automatically, and we also have a history of database modifications. Flyway supports many databases, but in this example, we will use MySQL. Requirements Project With this site, you can create your Spring project: https://start.spring.io To establish a connection with the database, we need…

Read More
Java

What is Garbage Collection in Java?

It is a process that manages memory in software written in Java. When running programs on the JVM (Java Virtual Machine), objects are created in the Heap memory. When these objects are no longer needed, the Garbage Collector will find unused objects and remove them from memory, helping to prevent memory leaks. We need to…

Read More
Java

How to improve the performance of primitive types in Java’s Stream Api?

Java’s Stream API facilitates code maintenance, is used with lambda expressions and functional paradigm. It offers many features such as filtering a list, among others. Let’s see an example. For this, I created a class called Product. I populated a list of products and created the following stream. My goal is to map the quantity,…

Read More
Connection Pool

What is Connection Pool?

Connection Pool is very important for improving the response time of applications. To discuss connection pool, it’s important to understand how database connections work in an application. Let’s use the example of a web application, an API. Without Connection Pool A request was made to the application to fetch some information, and in this example,…

Read More