Using Custom Banners in Spring Boot

1. Overview

By default, Spring Boot comes with a banner which shows up as soon as the application starts.

In this article, we’ll learn how to create a custom banner and use it in Spring Boot applications.

2. Creating a Banner

Before we start, we need to create the custom banner which will be displayed at the time of application start-up time. We can create the custom banner from scratch or use various tools that will do this for us.

In this example we used VietMX’s official logo:

 __  __       ___   __             __      ___      _     _____                
|  \/  |     (_) \ / /             \ \    / (_)    | |   / ____|               
| \  / | __ _ _ \ V /_   _  __ _ _ _\ \  / / _  ___| |_ | |     ___  _ __ ___  
| |\/| |/ _` | | > <| | | |/ _` | '_ \ \/ / | |/ _ \ __|| |    / _ \| '_ ` _ \ 
| |  | | (_| | |/ . \ |_| | (_| | | | \  /  | |  __/ |_ | |___| (_) | | | | | |
|_|  |_|\__,_|_/_/ \_\__,_|\__,_|_| |_|\/   |_|\___|\__(_)_____\___/|_| |_| |_|
                                                                               
 _____   _      ______      ________  __      _______ ______ _______ __  ____   __
|_   _| | |    / __ \ \    / /  ____| \ \    / /_   _|  ____|__   __|  \/  \ \ / /
  | |   | |   | |  | \ \  / /| |__     \ \  / /  | | | |__     | |  | \  / |\ V / 
  | |   | |   | |  | |\ \/ / |  __|     \ \/ /   | | |  __|    | |  | |\/| | > <  
 _| |_  | |___| |__| | \  /  | |____     \  /   _| |_| |____   | |  | |  | |/ . \ 
|_____| |______\____/   \/   |______|     \/   |_____|______|  |_|  |_|  |_/_/ \_\
                                                                                  

However, in some situation, we might like to use the banner in the plain text format since it’s relatively easier to maintain.

The plain-text custom banner which we used in this example is available here.

Point to note here is that ANSI charset has the ability to display colorful text in the console. This can’t be done with the simple plain text format.

3. Using the Custom Banner

Since we have the custom banner ready, we need to create a file named banner.txt in the src/main/resources directory and paste the banner content into it.

Point to note here is that banner.txt is the default expected banner file name, which Spring Boot uses. However, if we want to choose any other location or another name for the banner, we need to set the spring.banner.location property in the application.properties file:

spring.banner.location=classpath:/path/to/banner/bannername.txt

We can also use images as banners too. Same as with banner.txt, Spring Boot expects the banner image’s name as banner.gif. Additionally, we can set different image properties such as height, width, etc. in the application.properties:

spring.banner.image.location=classpath:banner.gif
spring.banner.image.width=  //TODO
spring.banner.image.height= //TODO
spring.banner.image.margin= //TODO
spring.banner.image.invert= //TODO

However, it’s always better to use text format because the application start up time will drastically increase if some complex image structure is used.

4. Conclusion

In this quick article, we showed how to use a custom banner in Spring Boot applications.

Like always, the full source code is available over on GitHub.

Related posts:

Java Program to Give an Implementation of the Traditional Chinese Postman Problem
Java Program to Check for balanced parenthesis by using Stacks
Prevent Brute Force Authentication Attempts with Spring Security
Spring’s RequestBody and ResponseBody Annotations
Adding a Newline Character to a String in Java
Java Program to Generate Random Numbers Using Probability Distribution Function
@DynamicUpdate with Spring Data JPA
Java Program to Perform Right Rotation on a Binary Search Tree
Spring REST with a Zuul Proxy
Java Program to Check whether Graph is a Bipartite using BFS
Map to String Conversion in Java
Spring Boot Configuration with Jasypt
Java Program to implement Circular Buffer
Java Program to Implement Nth Root Algorithm
Rate Limiting in Spring Cloud Netflix Zuul
Registration with Spring Security – Password Encoding
Java Program to Implement Caesar Cypher
Using Spring ResponseEntity to Manipulate the HTTP Response
Converting Java Date to OffsetDateTime
Tìm hiểu cơ chế Lazy Evaluation của Stream trong Java 8
Model, ModelMap, and ModelAndView in Spring MVC
Spring Security – security none, filters none, access permitAll
An Example of Load Balancing with Zuul and Eureka
Remove HTML tags from a file to extract only the TEXT
REST Pagination in Spring
Guide to CountDownLatch in Java
Template Engines for Spring
Spring WebClient Filters
Java Program to Implement Interpolation Search Algorithm
Java Program to Implement Hamiltonian Cycle Algorithm
Guide to Java OutputStream
Ways to Iterate Over a List in Java