Java Standard

Main Requirement

IDE

we will be using IntelliJ IDEA as our IDE for work. link

standard plug-in

  • SonarLint Link
  • Checkstyle-IDEA Link
  • Codeium-AI Link
  • Endpoints Explorer Link
  • RoboPOJOGeneratpr Link

Framework

we use Spring Boot as our main framework & Maven as our compiler.

We will be using Spring Boot version 3.

Java Version

As a standard, we will be using Java 17 to create new projects.

Note

The version of Spring Boot and Java used will depend on the client’s requirements. If there are no specific requirements from the client, we will use the standard mentioned above to create a new project.

Dependencies

Openfeign

A Java framework used to easily and elegantly create HTTP clients. This framework is used to communicate with web services or APIs from Java applications. OpenFeign integrates with Spring Cloud, making it commonly used in microservice applications built with Spring Boot.

reference

Liquibase

Liquibase is a tool used in software development and database management. This tool allows developers and database administrators to manage the structure of the database schema in a structured, documented, and secure way. Liquibase is used to manage changes to the database schema, such as creating new tables, modifying columns, deleting indexes, and more, using an approach called ‘Database Refactoring’.

reference

Mapstruct

MapStruct is an object mapping framework used in Java application development. The main purpose of MapStruct is to automatically generate object mapping code, allowing developers to easily transform data from one object to another without having to write manual mapping code. MapStruct can be used in various contexts, including microservices-based applications, data processing, and Spring-based applications.

reference

Lombok

MapStruct is an object mapping framework used in Java application development. The main purpose of MapStruct is to automatically generate object mapping code, allowing developers to easily transform data from one object to another without having to write manual mapping code. MapStruct can be used in various contexts, including microservices-based applications, data processing, and Spring-based applications.

reference

Zalando Logbook

Apache HttpClient is a Java library that can be extended to enable comprehensive logging of requests and responses for various client and server-side technologies. It fulfills specific needs by allowing web application developers to log any HTTP traffic received or sent by the application in a way that makes it easy to store and analyze it later. This can be useful for traditional log analysis, meeting audit requirements, or investigating individual historical traffic issues.

reference

Test Containter

TestContainer is a tool that helps us run integration tests on our code.

reference

Envers (Optional)

Hibernate Envers is a project used for auditing or historical recording of entities (objects) in applications that use Hibernate as an Object-Relational Mapping (ORM) framework. With Hibernate Envers, you can automatically track data changes on entities, including who made the changes, when the changes occurred, and what the changes were.

reference