I'm excited to announce the release of Spring ViewComponent v0.7.0 today.
You can grab the release from Maven Central by following the instructions at: https://github.com/tschuehly/spring-view-component#installation
The two biggest changes to this release are the annotation processor for processing ViewComponents at build time and an improved way to create a ViewContext.
Annotation Processor
Previously the templates were processed at request time by parsing them with jsoup and then transforming the view:action
attributes after rendering the templates was finished.
This was complicated as we needed to deal with HTML parsing and figuring out what ViewComponent the view:action
attribute was in and severely impacted performance, as this was done on each request and not just once.
Now a Java annotation processor will process the templates at build time to translate the view:action
attributes to hx-
attributes.
But hot reloading the templates also still works as I integrated a Spring Devtools FileSystem Watcher to parse the templates at development time.
Creating a ViewContext
Previously we created a ViewContext by calling the ViewContext constructor and passing ViewProperties.
This will now be replaced by creating a dedicated record that needs to implement the ViewContext interface. This will enable type checking of templates in the future.
This simplifies the @param annotation inside JTE templates and the @thymesVar comment inside Thymeleaf templates immensely!
If you have any questions just open an issue in the GitHub Repository!
If you want to learn more about HTMX + Spring Boot check out my series Web development without the JavaScript headache with Spring + HTMX.
My side business PhotoQuest is also built with HTMX + JTE