The back-end for Ignio leveraged by spring boot microservices
- Maven - Dependency Management
- JDK - Java™ Platform, Standard Edition Development Kit
- Spring Boot - Framework to ease the bootstrapping and development of new Spring Applications
- MongoDB - Open-Source Relational Database Management System
- git - Free and Open-Source distributed version control system
- Thymeleaf - Modern server-side Java template engine for both web and standalone environments.
- Prometheus - Monitoring system and time series database
- Postman - API Development Environment (Testing Docmentation)
- Service Discovery (Eureka)
- Actuator
- Logger (Console, File, Mail)
- RESTful Web Service (CRUD) / Endpoints
- HATEOS
- Spring Boot Admin
- MongoDB Integration
- Micrometer
- Grafna
- Content Negotiation
- Security
- Dynamic API tokens
- Docker configurations
- Kubernetes deployment
- Production Ops
There are several ways to run a Spring Boot application on your local machine. One way is to execute the main
method in each services for com.foxploit.ignio.<service>.<MainApplication>
classes from your IDE.
- Download the zip or clone the Git repository.
- Unzip the zip file (if you downloaded one)
- Open Command Prompt and Change directory (cd) to each service folders
- Open Eclipse
- File -> Import -> Existing Maven Project -> Navigate to the folder where you unzipped the zip
- Select the project
- Choose the Spring Boot Application file (search for @SpringBootApplication)
- Right Click on the file and Run as Java Application
Alternatively you can use the Spring Boot Maven plugin like so:
$ mvn spring-boot:run
$ mvn clean install
- Postman Collection - online, with code auto-generated snippets in cURL, jQuery, Ruby,Python Requests, Node, PHP and Go programming languages
- Postman Collection - offline
- Swagger - Documentation & Testing
The project (a.k.a. project directory) has a particular directory structure. A representative project is shown below:
.
├── Spring Elements
├── src
│ └── main
│ └── java
│ ├── com.arc.application
│ ├── com.arc.application.config
│ ├── com.arc.application.controller
│ ├── com.arc.application.exception
│ ├── com.arc.application.model
│ ├── com.arc.application.util
│ └── com.arc.application.repository
├── src
│ └── main
│ └── resources
│ └── static
│ │ ├── css
│ │ │ └── bootstrap.css
│ │ ├── images
│ │ ├── js
│ │ ├── favicon.ico
│ │ └── index.html
│ ├── templates
│ │ └── view.html
│ ├── application.properties
│ ├── banner.txt
│ └── log4j2.xml
├── src
│ └── test
│ └── java
├── JRE System Library
├── Maven Dependencies
├── bin
├── logs
│ └── application.log
├── src
├── target
│ └──application-0.0.1-SNAPSHOT
├── mvnw
├── mvnw.cmd
├── pom.xml
└── README.md
discovery-server
-- Provide service discovery of between microservices
-
models
— to hold our entities; -
repositories
— to communicate with the database; -
services
— to hold our business logic; -
controllers
— to listen to the client; -
resources/
- Contains all the static resources, templates and property files. -
resources/static
- contains static resources such as css, js and images. -
resources/templates
- contains server-side templates which are rendered by Spring. -
resources/application.properties
- It contains application-wide properties. Spring reads the properties defined in this file to configure your application. You can define server’s default port, server’s context path, database URLs etc, in this file. -
test/
- contains unit and integration tests -
pom.xml
- contains all the project dependencies