Spring Boot Starter Project

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”. We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration.
You can use Spring Boot to create Java applications that can be started using java -jar or more traditional war deployments. We also provide a command line tool that runs “spring scripts”.
 Primary goals are:
  • Provide a radically faster and widely accessible getting started experience for all Spring development.
  • Be opinionated out of the box, but get out of the way quickly as requirements start to diverge from the defaults.
  • Provide a range of non-functional features that are common to large classes of projects (e.g. embedded servers, security, metrics, health checks, externalized configuration).
  • Absolutely no code generation and no requirement for XML configuration

Features:

RESTful Web Service Family
The project contains examples of Create, Read, Update, and Delete web services. The project illustrates the use of @ExceptionHandler annotated methods to manage web service responses when common exceptional conditions arise.
Business Services
The project demonstrates the encapsulation of business behaviors into domain-specific, Spring-managed components annotated with @Service.
Spring Data JPA
The project shows the use of Spring Data JPA repositories, @Repository, for data access and management. Illustrates the @Entity annotation and other JPA entity model annotations for attribute and relationship mapping.
HSQLDB In-Memory Database
The project illustrates how to use the HSQLDB in-memory database which is useful for rapid prototyping or unit test execution in a continuous integration environment.
MySQL Database
In addition to HSQLDB support, the project also illustrates integration with MySQL.
Liquibase Database Migration
The project demonstrates the use of Liquibase change logs to automatically create and update the database structure and initial content. The Liquibase change logs have been tested with the HSQLDB and MySQL database engines.
Transaction Management
The project contains examples of the @Transactional annotation on business service methods.
Cache Management
The project contains examples of the @Cacheable@CachePut, and @CacheEvict annotations on business service methods.
Scheduled (Batch) Processes
The project illustrates the use of the @Scheduled annotation and provides examples of cron, fixed rate, and fixed delay schedules.
Asynchronous Processes
The project illustrates the use of the @Async annotation and provides examples of asynchronous methods with and without return values.
Spring Security
The project provides examples of Spring Security integration. The web service endpoints are secured using Basic Auth, backed by database authentication and authorization. The project illustrates declarative authorization for resources by role.
Spring Profiles
The project demonstrates how to use Spring Profiles to activate (or deactivate) application components and configuration. The profiles illustrated are: batch, hsqldb, mysql, and docs.
Unit Tests
The project contains unit test examples for standard components such as business services or batch beans and examples for the web service endpoints using Mock objects. Perform complete end-to-end testing with Spring MVC mocking or leverage Mockito to stub or spy business components.
Actuator Monitoring and Management
The project illustrates the use of Spring Boot Actuator for application monitoring and management. The application demonstrates the recording of custom metrics and the creation of custom health checks. Also, custom Maven and Gradle project attributes are incorporated into the Actuator info endpoint.
API Documentation Generator
The project includes Springfox Swagger integration to automatically generate API docs for the RESTful web service endpoints. This feature may be activated using the "docs" Spring profile.
Executable Jar
The Maven and Gradle builds produce a fully executable Spring Boot Jar file. The Jar file may be executed directly from the command line without the "java -jar" command and may be installed on Linux servers as a service.

Comments

Popular posts from this blog

JIT Compiler

Authentication using One Time Password (OTP)

JWT to Secure REST API with Spring Boot