Skip to main content

Spring Boot, Thymeleaf static resource refresh

Introduction
Thymeleaf is a natural template engine that is often used in modern java-server-side applications that are running in web and standalone environments. Ease of natural templating gives the upperhand to pick Thymeleaf over other frameworks in Java Serverside application development. Spring provides support to thmyeleaf development. Spring boot has its own starter dependency for thymeleaf. While we develop thmyeleaf templates using spring boot applications, Front End Developers cannot see the changes that are made in the resources while the application is running. But the changes don't take effect in the browser until the application is reloaded or restarted.

Solution
We can solve this templating-resources-reloading without application restart. Spring boot uses properties in which we have to just disable the cache for Thymeleaf. Below are the steps to achieve these.

Step 1: Disable the cache by setting the spring.thymeleaf.cache = false in the application.properties file. 
The property just disables the Thmyeleaf caching template in Spring applications. If you are working on different(dev, prod, staging) environments, make sure you are updating relevant environment properties so that your production environment still caches the Thymeleaf template.

Step 2: We just need to update pom.xml and set spring-boot-maven-plugin 'addResources' configuration to true.
When addResources is enabled, any src/main/resources folder will be added to the application classpath when you run the application and any duplicate found in target/classes will be removed. This allows hot refreshing of resources and ensures the application picks from resources folder rather than the classpath resources.
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <addResources>true</addResources>
                </configuration>
            </plugin>
        </plugins>
    </build>

Assumption      : Spring Boot (1.5.6),  Thymeleaf (3.0.6), Maven Projects

Comments

  1. Lucky Lady Bingo Slot Machines - JTM Hub
    Welcome to J.T. Bingo. Your chance to 파주 출장안마 win real money playing 진주 출장샵 and winning at the casino with 천안 출장안마 these high-quality, fun 순천 출장샵 casino games. 군산 출장마사지

    ReplyDelete
  2. Amazing post, thanks for sharing such informative article. Useful and interesting. Take look at this too ecommerce development company in dubai. Thanks!

    ReplyDelete
  3. pg สล็อต เกมสล็อตออนไลน์ได้รับความนิยมอย่างมากในปัจจุบัน โดยเฉพาะจาก PG SLOT ซึ่งเป็นนักพัฒนาเกมชื่อดังที่มีความรู้สึกทันสมัยและคุณภาพเยี่ยม ผ่านอุปกรณ์มือถือที่ทันสมัยและสะดวกสบาย

    ReplyDelete

Post a Comment

Popular posts from this blog

CSRF enabled Ajax requests using Spring Security

Many of you who have worked on Spring Security might be aware of the fact that Spring Security protects applications from Cross Site Request Forgery using _csrf tokens in the request sent to the web server. You can find a detailed understanding in the Spring documentation page . The objective of this post is to explain how to send _csrf tokens in the Ajax requests when we protect our application URL and application access using spring security. How to get CSRF tokens While we submit a form using an application that is protected with Spring Security, the form gets a default hidden parameter in the form body when using <form:form> element. The param contains the _csrf tokens to authenticate the requests in the server. In case we use other ways to create forms, we have to manually include a hidden parameter that contains name as ${_csrf.parameterName} and  value as ${_csrf.token} . For example, <input type= "hidden" name= "${_csrf.parameterName}" ...

In-Place editing with X-Editable using Datatable plugin

Introduction In-place editing is a trending feature that can be seen in many latest web applications, a popular example would be trello.com where the editing data happens on the web page without any explicit forms or popups. Another such example I could point out is, thoughtplan.com. The in-place editing is very nice in such a way that editing data seems so natural and user friendly. To enable in-place editing, there are many free JQuery plugins available on the internet. We are discussing a very popular plugin called x-editable . Most of the time we use html tables to display data where in-place editing is enabled. Hence we need another plugin to elegantly display tables with enormous data. We use a famous JQuery plugin called datatable . Both of these plugins are used widely and free to use. Assumption      : Bootstrap 3, JQuery used Projects Integration In order to enable datatable features on any ordinary table found on web page, we should initialise datata...

A wonderful technique to reduce website development cost

Websites - Good way to get online presence Websites are very vital to get online presence of any business nowadays. Websites are categorized into two different types. First one is Static Website and second one is Dynamic Website, normally known as web applications. Static websites are most widely used for any business since they help to bring up the online presence more easily and quickly. Depending on the content and features, static websites cost around $300-$700 . It includes web design and development. Apart from that, the business has to spend for hosting space and domain name for the website. Cloud based development is now more prevalent. Building a website and running it will be very easy and cheap using these cloud infrastructure. But the difficulty facing the development of static websites still looms high as it does not matter who provides the infrastructure. The development cost is still same. Technology - LAMP Static websites are developed using HTML and PHP mostly...