Spring Boot boilerplate

Bruno Simioni
2 min readJul 20, 2015

--

I built a Spring Boot boilerplate application containing a pandora box of mixed applications with common needs of projects where I’ve been working upon.

Spring Boot is a great-fucking-burst-your-time tool, helping developers to stablish application’s foundation as fast as you can run from a hungry lion on Africa’s savanna (holy crap \o/).

However, even Spring Boot being a out-of-box architectural solution, it does not ship some important features that we use in day-to-day software development life-cycle.

Here is what I’m shipping with:

  • Multimodule fashion: Spring Boot depends on the parent BOM, wich is a not so good approach when you have your own project structure. This application ships Spring Boot as a dependencymanagement, instead of using parent approach.
  • Swagger: for REST API endpoints documentation and self-service browser interface.
  • AMQP: for message based systems, based uppon Spring AMQP.
  • DI: dependency injection provided by Spring Core AOP.
  • HealthCheck: for microservices health HTTP based monitoring, provided by tools like Zabbix opensource web monitoring.
  • Metrics: for systems performance evaluation. You can integrate to Graphite tool. Great example of tracking provided here and monitoring here.
  • CORS: for Cross Origin Resource Sharing.
  • Jersey: for REST APIs endpoints implementation, based uppon JAX-RS JSR. Don’t miss the Async/Non blocking IO APIs in REST endpoints post.
  • Basic Authentication: based on properties available on classpath. Returning WWW-Authenticate header, helping browsers to identify and dropdown login form.
  • Archaius: providing dynamic configuration, based on updates polling, through agnostic datasources.
  • Hazelcast: for master ellection, provided by this friend’s project, and a generic ellection algorithm.

The project is avaliable on my github. Fork as your needs.

--

--

Bruno Simioni

CTO at CI&T, helping companies with agile architecture strategy, in the path to digital transformation.