When we start our Spring Boot application, it comes up with a default Banner, in this post we will discuss how to use Custom Banners in Spring Boot application.
It’s highly likely that you want to release your own product/application based on the Spring Boot and want to display your own custom banner in place of default Spring Boot Banner.By default Spring
By default, Spring Boot application will display the following banner on startup
. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v1.5.7.RELEASE)<
In order to start, we need to create a custom banner which will be used to display on the application startup time. I will be using Spring Boot Banner Generator to upload an image for generating ANSI character in the plain text.You can always generate it manually if you want :).
For this tutorial, I will be using Spring Logo logo from Spring IO site.
In the above section, we have created a custom banner and it’s time to start using this custom banner.We will be creating a file
banner.txt under the
src/main/resources folder and will paste content in this file.
Spring Boot by default will pick content from the
banner.txt file, in case it will find a banner.txt in our project classpath (resources folder of our application), it will pick custom banner content and will display it on the startup.
In case we want Spring Boot to pick banner content from other location and not from the default banner.txt, we can customize that by setting
banner.location to the location of such a file
Here is the output when we run our application with new content in banner.txt file
We can even use the image as a custom banner for our Spring Boot application, We can add
banner.png image file to your classpath and Spring Boot will automatically pick this image as a startup banner. Please note that we need to name these banner images as a
You can use
banner.image.location property to set a custom location for our banner image in the
application.properties file, we can also use some additional properties to customize our banner
banner.image.location=classpath:banner.gif # Banner image file location (jpg/png can also be used). banner.image.width= # Width of the banner image in chars (default 76) banner.image.height= # Height of the banner image in chars (default based on image height) banner.image.margin= # Left hand image margin in chars (default 2) banner.image.invert= # If images should be inverted for dark terminal themes (default false)
Images will be converted into an ASCII art representation before getting printed on the startup which can add a lot of time on startup in case we have a complex image.It is recommended to use text format for a Custom Banners in Spring Boot.
If you want you can use
SpringApplication.setBanner(… ) method to set custom banner programmatically but in my opinion, this is not preferred way and you need to implement your own
printBanner() provided under
In this short post, we learned how to use a Custom Banners in Spring Boot. We explored the option to create a custom banner using a banner.txt file or placing your custom image in your classpath.