You are currently viewing Hexagonal Architecture Tutorial with Java Examples

Hexagonal Architecture Tutorial with Java Examples


Hexagonal Architecture, also known as Ports and Adapters architecture or simply the Onion Architecture, is a design pattern that aims to create a loosely coupled and easily maintainable software system. The core idea is to separate the business logic from external concerns, such as databases, user interfaces, and external services.

In this tutorial, we’ll explore Hexagonal Architecture using Java examples. We’ll create a simple application to manage a list of books.


Make sure you have the following installed on your system:

  1. Java Development Kit (JDK) – Download JDK
  2. Integrated Development Environment (IDE) – IntelliJ IDEA or Eclipse are recommended.

Project Setup

Create a new Java project in your chosen IDE. For simplicity, let’s name it “BookManagementApp.”

Hexagonal Architecture Components

1. Core (Business Logic)

Create a package named core to house the business logic.

2. Ports

Create two packages within the core package named and ports.out for input and output ports, respectively.

Input Ports (

Output Ports (ports.out)

3. Adapters

Create two packages within the adapter package named in and out for input and output adapters, respectively.

Input Adapters (

Output Adapters (adapter.out)

Wiring it All Together

Now, let’s wire the components together.


Congratulations! You’ve implemented a simple Hexagonal Architecture for a book management system in Java. This architecture promotes testability, maintainability, and flexibility by separating concerns and dependencies. You can further expand this example by adding more use cases, controllers, and adapters based on your application’s needs.

Leave a Reply