Skip to main content

What is a DTO in spring Boot?

DTO, which stands for Data Transfer Object, is a design pattern conceived to reduce the number of calls when working with remote interfaces.the main reason for using a Data Transfer Object is to batch up what would be multiple remote calls into a single one. For example, lets say that we were communicating with a RESTful API that exposes our banking account data. In this situation, instead of issuing multiple requests to check the current status and latest transactions of our account, the bank could expose an endpoint that returned a DTO summarizing everything. As one of the most expensive operations in remote applications is the round-trip time between the client and the server, this coarse-grained interface can help improving performance by a great deal. ModelMapper Introduction To avoid having to write cumbersome/boilerplate code to map DTOs into entities and vice-versa, we are going to use a library called ModelMapper. The goal of ModelMapper is to make object mapping easy by automatically determining how one object model maps to another. This library is quite powerful and accepts a whole bunch of configurations to streamline the mapping process, but it also favors convention over configuration by providing a default behavior that fits most cases. The user manual of this library is well written and can be a valuable resource if time comes where we need to tweak the mapping process. To give a little taste of what this library can do, let's say that we had a User like that:

// assume getters and setters

class User {

long id;

String firstName;

String lastName;

String email;

String password;

String securitySocialNumber;

boolean isAdmin;

}

And wanted to expose just the id, firstName, and email. By using ModelMapper we would have to create a DTO like this:

// assume getters and setters

class UserDTO {

long id;

String firstName;

String email;

}

And then call ModelMapper as follows:

ModelMapper modelMapper = new ModelMapper();

// user here is a prepopulated User instance

UserDTO userDTO = modelMapper.map(user, UserDTO.class);

That is, only by defining the structure that we want to expose and by calling modelMapper.map, we achieve our goal and hide what is not meant to be exposed. One might argue that libraries like Jackson provide annotations to ignore some properties when serializing objects, but this solution restrict developers to a single way to express their entities. By using DTOs and ModelMapper, we can provide as many different versions (with different structures) of our entities as we want. A data transfer object (DTO) is an object that is used to encapsulate data, and send it from one subsystem of an application to another. DTOs are commonly used in n-tiered web applications to transfer data between model and view. A DTO differs to the model and DAOs (which persist and retrieve data from the database) in that a DTO does not have contain any business logic except for storage and retrieval of its own data. A DTO’s data can be aggregated from several database tables or other data sources. The main benefit of using DTOs is that they can reduce the amount of data that needs to be sent across the wire in web applications. The following text describes a simple example of a DTO in a Java-based library-like web application. The model of the application consists of two simple classes, Person and Book. The main class is Person which has the following attributes: private int personId; private String name; private String address; private String telephone; private String email; private ArrayList books The Book class includes a bookId, title, author and a personId which serves as a foreign key between the tables of the database which form a typical 1:M relationship. In this application, a servlet named AdminMemberships calls page adminMembership.jsp to allow library members and their books to be displayed and deleted by librarians. AdminMembershipDTO (illustrated below) is a simple Java class with instance variables for a Person and a boolean attribute hasBooks which tests if that Person has any Books on loan.

Comments

Popular posts from this blog

IPL 2025: The Ultimate Season Preview, Stats, and Predictions

 The Indian Premier League (IPL) 2025 is set to be bigger and better than ever. With a mega auction, new regulations, and rising superstars, this season is shaping up to be the most thrilling edition in IPL history. Let’s dive deep into team analyses, key player stats, historic milestones, and predictions to see what IPL 2025 has in store! IPL 2025 at a Glance Start Date: March 22, 2025 Final Match Venue: Eden Gardens, Kolkata Total Matches: 74 Teams: 10 New Rule: Introduction of 'Power Boost Over' (Allows a team to add an extra over to Powerplay if all wickets are intact by the 8th over) --- Interesting IPL 2025 Data & Records 1. The ₹100 Crore Auction - Highest Spending in IPL History Total Money Spent: ₹1050 crore (~$125 million) Most Expensive Player: Rishabh Pant (Lucknow Super Giants) - ₹27 crore Shreyas Iyer (Punjab Kings) - ₹26.75 crore Trent Boult (Delhi Capitals) - ₹18.5 crore 2. The ‘Orange Cap’ Race - Run-Scoring Machines Predicting the top contenders for the hi...

Java 24 Released: What's New and Why It Matters?

 Oracle has officially released Java 24 on March 18, 2025, bringing a host of new features aimed at improving developer productivity, security, and performance. This release includes over 20 enhancements, making Java even more powerful for modern application development. Let’s dive into the key features and improvements in Java 24 and understand why they matter. --- 1. AI and Machine Learning Support Java 24 introduces features designed to enhance AI-powered applications. Developers can now integrate AI models and perform AI inference more efficiently using built-in Java capabilities. Why It Matters? With AI becoming a crucial part of modern applications, Java 24 makes it easier to process and deploy AI models without relying heavily on third-party libraries. --- 2. Post-Quantum Cryptography To prepare for the future threats of quantum computing, Java 24 includes new cryptographic algorithms that protect against potential security breaches. Why It Matters? Quantum computers could p...

The Mysterious Journey of Astronaut Sunita Villms: A Struggle Between Earth and the Unknown

 Astronaut Sunita Williams and her colleague, Barry "Butch" Wilmore, recently returned to Earth after an unexpected nine-month mission aboard the International Space Station (ISS). Originally scheduled for a brief eight-day stay, their mission was extended due to technical issues with the Boeing Starliner spacecraft, leading to a prolonged 286-day duration in space.  Mission Extension and Challenges The mission's extension was primarily due to propulsion problems with the Starliner craft, necessitating their continued presence on the ISS. This unforeseen prolongation presented both physical and psychological challenges for the astronauts. Prolonged exposure to microgravity can lead to muscle atrophy, bone density loss, and other health concerns. To mitigate these effects, astronauts adhere to rigorous exercise regimens while aboard the station.  Health Observations Upon Return Upon their return, noticeable physical changes were observed, particularly with Sunita Williams,...