# Spring Boot Template Project Introduction

Whenever I need to implement a new feature, I typically start by researching available solutions on Google. Then I will experiment with one or more solutions to select the best one.

However, after several months, I might *forget how to implement that feature*. Consequently, I end up having to *revisit internet resources, conduct research once again, and reattempt the implementation*.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1676107958936/3a05afc4-27cf-4fb5-a9bf-4f1f93580b11.png align="center")

The above situation is very common, not just for me but also among my friends and colleagues. We waste a lot of time recalling and researching solutions - things could be synthesized in a template project for the next implementation.

So I have developed this project which includes **implementations** designed to assist both myself and other Spring Boot developers in seamlessly diving into coding. Each commit within the project represents the implementation of a specific technique.

***Link***: [*https://github.com/hieubz/spring-boot-template-project*](https://github.com/hieubz/spring-boot-template-project)

**Tech stack**: Java 11, Spring Boot 2.7.x (upgraded to Java 17, Spring Boot 3.1.x)

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1677378359282/281d2ad4-85ee-4e72-bef9-4bf5ce869b62.png align="center")

Every time I need to implement a feature in this list, I can search by feature keywords (*such as* ***Redis, retry, email,...***) to find the corresponding commit, then apply the code of that commit for my feature. No need to search and remember boilerplate code anymore!

![feature_searching.png](https://github.com/hieubz/spring-boot-based-project/blob/main/src/main/resources/META-INF/feature_searching.png?raw=true align="left")

We will have basic features here:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1677378593141/c6ccd4f5-1f3b-46a7-8cfa-06acd22241ae.png align="center")

or advanced things like:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1677378689217/3c093a83-e5be-4de6-9691-439fb5dd4aaf.png align="center")

There are also modules related to Unit Test, Monitoring:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1677378846201/980625d8-4561-4189-8c46-b08f1807b626.png align="center")

I hope this project helps Spring Boot developers increase their productivity, allowing them to allocate more time to other important activities.

I plan to upgrade to **Spring Boot 3** and **Java 17** in the near future.

See yaaa!
