devon4j overview - Jorge-Dacal/devonfw-tutorial-sources GitHub Wiki

Table of Contents

devon4j

For Java based backend solutions, devonfw includes devon4j that provides a standardized architecture blueprint, an open best-of-breed technology stack as well as industry proven best practices and code conventions for a cloud ready Spring based server.

Included in devonfw framework as default server solution, devon4j is the result of applying devonfw principles in a Java based technology stack. With devon4j developers are able to create web application backends in a fast and reliable way, generating web services (REST, SOAP) that web clients can consume.

devon4j Technology stack

As mentioned before, devon4j is not only a framework but a set of tools and conventions. devon4j provides a Java backend solution based on the following technologies:

  • Spring framework as the main development framework

  • Spring Boot as project accelerator.

  • Maven as project and dependencies management tool. The Maven projects use the POM file to store all the necessary information for building the project (project configuration, dependencies, plugins, etc.). You can get more details about POM files here.

Some of the main features of Spring Boot are

  • Creation of stand-alone Spring applications in an easy way.

  • Embedded Tomcat directly (no need to deploy WAR files).

  • Provide 'starter' POMs to simplify your Maven configuration.

  • Automatically configure Spring (whenever possible).

  • Provide production-ready features such as metrics, health checks and externalized configuration.

  • No requirement for XML configuration

For persistence and data access devon4j implements:

  • JPA and Hibernate

  • QueryDsl as query manager

  • H2 instance embedded as out-of-the-box database that is launched each time the application is started so the developers are able to start working with a real data access from scratch.

  • Flyway as a tool for version control of the database.

As service framework

devon4j tools

IDE

As part of the devonfw framework devon4j projects are integrated in a customized Eclipse instance that provides pre-configurations and pre-installed plugins focusing on code quality and productivity boosting.

devonfw Tools

Apart from all the methodologies regarding the mentioned frameworks, inside the devonfw ecosystem there are another tools that are crucial for boosting the productivity and enhance the managing of the Java projects.

  • Cobigen: a generic incremental generator for end to end code generation that will allow us to automate the generation of the main parts of the components of our apps. Starting from an Entity, Cobigen can generate all its CRUD functionality for us, starting from the service and ending up in the persistance data layer.

  • Devcon: a devonfw internal tool to manage devonfw based projects. Among many other tasks, it can create, run or deploy devon4j applications avoiding users to do it manually.

devon4j architecture overview

devon4j provides a solution for industrialized web apps based on components and a three-layers architecture.

devon4j architecture

A component is a package that contains the services and logic related to one feature of the app.

Each component will be divided in three layers: service, logic and dataacess.

  • Service Layer: will expose the REST api to exchange information with the client applications.

  • Logic Layer: the layer in charge of hosting the business logic of the application.

  • Data Access Layer: the layer to communicate with the data base.

Finally the devon4j applications provide a general package to locate the cross-cutting functionalities such as security, logging or exception handling.

In the next chapters you can find all the details about the implementation of each layer and how to develop all the relevant parts of a web app based on devonfw framework and devon4j.


Next chapter: an devon4j application

⚠️ **GitHub.com Fallback** ⚠️