Cách cài đặt Auto reload Thymeleaf templates với Spring Boot & Intellij IDEA

Chắc hẳn các bạn khi làm các dự án thực hiện với các project Spring boot thì view được khuyến cáo nên dùng từ Spring boot Framework chính là thymeleaf và công cụ tiện ích để coding hiện tại đang sử dụng nhiều cho các dự án là Intellij IDEA.

Theo truyền thống chúng ta sử dụng,  Spring MVC đi kèm sử dụng JSP (Java Server Pages) làm công cụ xem mặc định nhưng sau đó được thay thế bằng Thymeleaf trong bản phát hành ban đầu Spring Boot. Thymeleaf.

Mặc dù, đây là một công cụ mẫu rất tốt mang lại nhiều lợi ích hơn so với JSP, nó yêu cầu khởi động lại ứng dụng để xem các sửa đổi tệp Thymeleaf mới nhất. Nhưng nếu bạn đang làm việc trên giao diện người dùng của ứng dụng, bạn có thể rất mệt mỏi khi khởi động lại ứng dụng chỉ để xem các thay đổi HTML hoặc CSS. Có nhiều tùy chọn có sẵn để đảm bảo rằng bất kỳ thay đổi nào đối với mẫu Thymeleaf hoặc tài nguyên tĩnh như tệp JavaScript và CSS đều được tải lại. Bài viết này hướng dẫn bạn cách tự động tải lại các mẫu và tệp tài nguyên tĩnh mà không cần khởi động lại ứng dụng Spring Boot trong Intellij IDE.

Vậy làm sao để cài đặt Auto reload Thymeleaf templates với Spring Boot & Intellij IDEA???

Bước 1: Spring Boot Dev Tools

Spring Boot bao gồm một bộ công cụ bổ sung như spring-boot-devtools được bao gồm trong bất kỳ ứng dụng nào để cung cấp các tính năng bổ sung về thời gian phát triển. Spring Boot Dev Tools thực hiện những việc sau: Tự động khởi động lại vùng chứa Spring bất cứ khi nào có bất kỳ thay đổi nào đối với các tệp mã nguồn. Tự động tải lại các thay đổi để xem các mẫu hoặc tài nguyên tĩnh. Không cần khởi động lại, chỉ cần làm mới trình duyệt là đủ. Để dependency spring-boot-devtools vào dự án sử dụng maven ta vào file pom.xml hoặc build.gradle (cho Gradle):

pom.xml

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>
build.gradle

configurations {
    developmentOnly
    runtimeClasspath {
        extendsFrom developmentOnly
    }
}
dependencies {
    developmentOnly("org.springframework.boot:spring-boot-devtools")
}

Trong Eclipse và netBeans, chỉ cần bao gồm sự phụ thuộc vào spring-boot-devtools ở trên là đủ.

Nhưng đối với Intellij IDEA, bạn cần thực hiện thêm các bước sau để kích hoạt tính năng tự động tải lại trang html mà không cần phải thay reset lại server:

  • Go to File –> Setting –> Build, Execution, Deployment –> Compiler and check Build project automatically checkbox.
  • Press SHIFT + CTRL + A (Windows/Linux) or Command + CTRL + A (Mac) to open a pop-up window. Type registry to open the window. Find and check compiler.automake.allow.when.app.running option and that’s it.

Bước 2: Change Thymeleaf Templates Path

Trong file application-dev.yml or application-dev.properties ta thêm đoạn code bên dưới:

spring:
    # Templates reloading during development
    thymeleaf:
        prefix: file:src/main/resources/templates/
        cache: false

    # Static resources reloading during development
    resources:
      static-locations: file:src/main/resources/static/
      cache-period: 0

Để tải các thuộc tính trên, bạn cần kích hoạt và đặt cấu hình Spring Boot mặc định thành dev. Thêm thuộc tính sau vào tệp application.yml hay application.propeties của bạn:

spring:
    profiles:
      active: dev
spring.profiles.active: dev

Bước 3: Change Thymeleaf Templates Path

Các bạn nhận phím tắt để hiện thị cửa sổ registry:

Ctrl + Shift + All + /

Cửa sổ sẽ hiển thị như bên dưới:

Sau đó các bạn chọn Registry.Và tiếp tục màn hình sẽ hiện thị cửa sổ option để chọn.

Và chọn check  Enable ‘compiler.automake.allow.when.app.running’, property.

 

Như vạy khi các bạn hoàn tất các bước trên, các bạn đã có thể sử dụng được Auto reload Thymeleaf templates với Spring Boot & Intellij IDEA! Bài viết dựa trên kinh nghiệm khi thực hiện các dự án và công cụ Intellij IDEA.Hy vọng ở đâu đó sẽ giúp được các bạn khi gặp phải.

Happy coding! 😋

x