All Projects → SystangoTechnologies → Springboard

SystangoTechnologies / Springboard

Licence: mit
Spring Boot based production grade starter kit.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Springboard

Spring Cloud Flycloud
🔥🔥🔥FlyClould 微服务实战项目框架,在该框架中,包括了用 Spring Cloud 构建微服务的一系列基本组件和框架,对于后台服务框架的搭建有很大的参考价值,大家可以参考甚至稍加修改可以直接应用于自己的实际的项目开发中,该项目没有采用Maven进行项目构建,Maven通过xml进行依赖管理,导致整个配置文件太过臃肿,另外灵活性也不是很强,所以我采用Gradle进行项目构建和依赖管理,在FlyTour项目中我们见证了Gradle的强大,通过简单的一些配置就可以轻松的实现组件化的功能。该项目共有11个Module工程。其中10个位微服务工程,这10个微服务工程构成了一个完整的微服务系统,微服务系统包含了8个基础服务,提供了一整套微服务治理功能,他们分别是配置中心module_c…
Stars: ✭ 1,514 (+2466.1%)
Mutual labels:  spring-data-jpa, spring-boot, spring, spring-mvc, springframework, spring-security
Spring Mvc Thymeleaf Crud
Spring MVC CRUD Application with Thymeleaf, HTML5, CSS3 and Bootstrap
Stars: ✭ 14 (-76.27%)
Mutual labels:  spring-data-jpa, spring-boot, spring, spring-mvc, springframework
Javadevjournal
Source code for the tutorials published on the Javadevjournal site.
Stars: ✭ 141 (+138.98%)
Mutual labels:  spring-data-jpa, spring-boot, spring-mvc, maven, spring-security
Spring Framework Petclinic
A Spring Framework application based on JSP, Spring MVC, Spring Data JPA, Hibernate and JDBC
Stars: ✭ 251 (+325.42%)
Mutual labels:  spring-data-jpa, spring, spring-mvc, springframework, maven
Springboot Starterkit
Starter Kit for Spring Boot based (REST APIs and WebMVC) micro services.
Stars: ✭ 596 (+910.17%)
Mutual labels:  spring-data-jpa, spring-boot, spring, spring-mvc, spring-security
Spring Boot Shopping Cart
Simple shopping cart web app made using Spring Boot + Thymeleaf
Stars: ✭ 85 (+44.07%)
Mutual labels:  spring-data-jpa, spring-boot, spring, spring-mvc, spring-security
Spring Boot Blog
Simple blog web app made using Spring Boot + Thymeleaf
Stars: ✭ 121 (+105.08%)
Mutual labels:  spring-data-jpa, spring-boot, spring, spring-mvc, spring-security
Spring Reddit Clone
Reddit clone built using Spring Boot, Spring Security with JPA Authentication, Spring Data JPA with MySQL, Spring MVC. The frontend is built using Angular - You can find the frontend source code here - https://github.com/SaiUpadhyayula/angular-reddit-clone
Stars: ✭ 210 (+255.93%)
Mutual labels:  spring-data-jpa, spring-boot, spring, spring-security
Spring
Personal notes of preparation to Spring 5 Professional Certification
Stars: ✭ 35 (-40.68%)
Mutual labels:  spring-security, springframework, spring-mvc, spring-data-jpa
gro-light-automation
A raspberry pi project to automate hydroponics with relays and data sensors through a web application
Stars: ✭ 44 (-25.42%)
Mutual labels:  spring-security, springframework, spring-mvc, spring-data-jpa
Spring Petclinic Rest
REST version of the Spring Petclinic sample application
Stars: ✭ 257 (+335.59%)
Mutual labels:  spring-data-jpa, spring, spring-mvc, springframework
Spring5Certification
Spring Certification: This repository contains my examples and some best references to prepare the Spring 5 certification
Stars: ✭ 30 (-49.15%)
Mutual labels:  spring-security, springframework, spring-mvc, spring-data-jpa
Spring Boot Enterprise Application Development
Spring Boot Enterprise Application Development.《Spring Boot 企业级应用开发实战》
Stars: ✭ 261 (+342.37%)
Mutual labels:  spring-data-jpa, spring-boot, spring-mvc, spring-security
Mini Spring
mini-spring是简化版的spring框架,能帮助你快速熟悉spring源码和掌握spring的核心原理。抽取了spring的核心逻辑,代码极度简化,保留spring的核心功能,如IoC和AOP、资源加载器、事件监听器、类型转换、容器扩展点、bean生命周期和作用域、应用上下文等核心功能。
Stars: ✭ 698 (+1083.05%)
Mutual labels:  spring-boot, spring, spring-mvc, springframework
Spring Microservice Sample
Spring Boot based Mircoservice sample
Stars: ✭ 199 (+237.29%)
Mutual labels:  spring-data-jpa, spring-boot, spring, spring-security
BusinessInfrastructurePlatformGroupVersion
A java web project based on Spring Boot using MySQL, Spring MVC, Hibernate, Spring Data JPA, Query DSL, Lombok, Logback, etc.
Stars: ✭ 90 (+52.54%)
Mutual labels:  spring-security, springframework, spring-mvc, spring-data-jpa
Spring Webmvc Jwt Sample
Secures REST APIs with Spring Security and JWT Token based Authentication
Stars: ✭ 299 (+406.78%)
Mutual labels:  spring-data-jpa, spring-boot, spring, spring-security
Angularjs Springmvc Sample Boot
A RESTful sample using Spring Boot, Spring MVC, Spring Data and Angular/Bootstrap.
Stars: ✭ 309 (+423.73%)
Mutual labels:  spring-data-jpa, spring-boot, spring, spring-mvc
Spring Mvc Tutorial
Spring MVC 5 Tutorial - Guide to spring mvc framework
Stars: ✭ 121 (+105.08%)
Mutual labels:  spring-data-jpa, spring, spring-mvc, spring-security
Spring Boot In Action
Spring Boot 系列实战合集
Stars: ✭ 4,153 (+6938.98%)
Mutual labels:  spring-boot, spring, springframework, spring-security

Springboard

Springboard

Production ready maven based Spring Boot starter kit application.

Description

Starter kit for jump starting the development of a API oriented spring based Java server. It contains the best practices and latest tools that a spring boot developer should opt for in a fresh development. Since JPA is used, developers are free to opt for any SQL based DB engine for persistence (Postgres has been used as an example with this code sample). The preferred IDE for development is IntelliJ which comes with a plethora of useful JAVA tools to support Spring Boot development, but devlopers are free to opt for Eclipse or STS as well.

Technology

  • Spring Boot - Server side framework
  • JPA - Entity framework
  • Lombok - Provides automated getter/setters
  • Actuator - Application insights on the fly
  • Spring Security - Spring's security layer
  • Thymeleaf - Template Engine
  • Devtools - Support Hot-Code Swapping with live browser reload
  • JJWT - JWT tokens for API authentication
  • Swagger - In-built swagger documentation support
  • Docker - Docker containers
  • Junit - Unit testing framework

Application Structure

|____src
| |____main
| | |____java
| | | |____com
| | | | |____systango
| | | | | |____springboard
| | | | | | |____api
| | | | | | | |____v1
| | | | | | | | |____controller
| | | | | | | | |____request
| | | | | | |____domain
| | | | | | | |____model
| | | | | | | | |____user
| | | | | | | |____repository
| | | | | | |____dto
| | | | | | | |____model
| | | | | | | | |____user
| | | | | | | |____response
| | | | | | |____mapper
| | | | | | |____security
| | | | | | |____service
| | | | | | | |____admin
| | | | | | | |____exception
| | | | | | | |____user
| | | | | | |____util
| | |____resources
| | | |____static
| | | | |____css
| | | | |____img
| | | | |____js
| | | |____templates
| | | |____db
| | | | |____migration
| |____test
| | |____java
| | | |____com
| | | | |____systango
| | | | | |____springboard

Database Migrations

Flyway library is integrated to manage database migrations. The migration files have to be kept in src/main/resources/db/migration folder. There are sample migrations present here to depict file name patterns. Flyway will create a table in the database to manage the schema version files.

Running the server locally

The pom.xml can be configured to generate a WAR or standalone executable jar file as well. We suggest developers should use JAR in the development environment as the hot swapping and live reload features in Spring Boot are compatible with it and for production deployment WAR packaging should be used with standalone Tomcat (or any other servlet container) server.

Docker

Springboard supports docker container out of the box. This framework is meant to cater to both web based applications as well as scalable micro services written in Java. The 'Dockerfile' supplied with this boilerplate does a basic job in terms of instructing which tomcat image to pick and how to deploy the war file to the container. Please follow the steps mentioned below in order to create and deploy the docker container from this installation -

  • Create docker image from this project -
docker build -t springboard .

  • Once image is created, you may run the same using the following command -
docker run -p 8090:8090 springboard

  • Since we have not included a postgressql inside this container and are trying to connect to a database that is external to the container, you may need to enable the databsae to allow connections from foreign IP addresses which is disabled in case of default installations.

  • Some handy dcoker comammnds are listed below, we found them useful during the course of this development and thought its worth sharing.

    • In order to delete all images, use the following command
    docker rmi --force $(docker images -q)
    
    • In order to delete all containers, use the following command
    docker rm $(docker ps -a -q)
    
    • In order to list all the running docker containers, use the following command
    docker ps
    
    • In order to list all the docker images, use the following command
    docker images
    
    • In order to get inside a docker container's command prompt, use the following command
    docker exec -it <mycontainer> bash
    

Unit test cases

Springboard comes with a handy set of unit test cases present in the 'SpringboardApplicationTests' class inside the test directory. The test cases are based on the fact that spring security is applied, the first thing you should do before accessing a protected url in the application is obtain a valid JWT token using the utility method provided in the test suite. Once you have the valid token, any protected url could be unit tested without any issues.

Swagger Documentation

Swagger documentation is in-built in this starter-kit and can be accessed at the following URL -

http://<host-name>:8090/swagger-ui.html

The configuration for swagger are driven via com.systango.springboard.util.SwaggerConfig.java class that at present shows all the apis listed under the "com.systango.springboard.api.*"package. The JWT token should be presented inside the value input box as "Bearer token_goes_here". The authorization header for the REST APIs should be as follows -

curl -X GET \
  http://localhost:8090/v1/about/faq \
  -H 'Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImV4cCI6MTUxNTMyMjU4Mn0.RHex52JtZZt0lfaZc_sHdwU8auevcT9COJDxp6RbBBU1ZbCEc6bh4b2CxjA8TSgH7DkwWIbO6ISqpMuUXNcZwA' \
  -H 'Cache-Control: no-cache' \

Contributors

Arpit Khandelwal Sumit Singhal

License

This project is licensed under the terms of the MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].