Stack Name - Spring MongoDB

Synopsis

The is the base reusable implementation for Spring Boot type tech stacks used to create a headless (no UI) application comprised of a set of reusable Restful APIs. The stack includes:
  • Spring Boot:
    • Designed to simplify the bootstrapping and development of a new Spring application.
  • MongoDB:
    • A general purpose, document-based, distributed database built for modern application developers and for the cloud era
  • JUnit:
    • Unit testing framework for Java
  • Memcached:
    • A general-purpose distributed memory-caching system
  • Morphia:
    • An Object to Document mapping framework to simplify persisting Plain Old Java Objects

Details

Author dev@harbormaster.ai
Access Public
Derived From .java.tech.stack .mongodb.tech.stack
Long Name Spring MongoDB
Short Name SpringMongoDB
Language(s) Java 8+, Javascript, YAML, XML, Velocity Macros
Git Url https://github.com/Harbormaster-AI/techstacks/tree/main/Spring%20MongoDB
Example Project YAML https://github.com/Harbormaster-AI/cli/blob/main/samples/yamls/project.as.code/springboot-mongodb-project-as-code.yml

Contents

Along with what is supported by the parent  tech stack (.java.tech.stack), the following are overridden and additional capabilities:
  • App:
    • The main Application template used to configure, initiate, and run as a Spring application.
  • Build/Maven:
    • Overrides the default Maven pom.xml file to create a Spring Boot self-contained web application.
  • Controller:
    • Template used to generate the Restful handlers for all CRUD functions for each entity within the model.
  • Config/Properties:
    • Contains the templates to generate the Hibernate XML database schema declarations.

Usage

If using a CI/CD platform such as CircleCI, AWS Codebuild, Jenkins, etc.., it is best to refer to the Pipeline YAML file generated for that platform. If not using a CI/CD platform refer to the instructions below on how to use the generated project.

To get started manually

In the root directory of the generated project is a generated Maven pom.xml file that contains the declarations and dependencies to run the application within a Jetty container.
mvn spring-boot:run