Spring ResourceHandlerRegistry 教程展示了如何在 Spring Web 应用中提供静态资产,例如图像,CSS 或 JavaScript 文件。
Spring 是用于创建企业应用的流行 Java 应用框架。
ResourceHandlerRegistry
ResourceHandlerRegistry
存储用于通过 Spring MVC 服务静态资源(例如图像,css 文件等)的资源处理程序的注册。 它允许设置为在 Web 浏览器中高效加载而优化的缓存头。 可以在 Web 应用根目录下,类路径等位置之外的位置提供资源。
Spring ResourceHandlerRegistry
示例
以下应用使用ResourceHandlerRegistry
在 Spring Web 应用中注册静态资产。 我们使用addResourceHandlers()
为 CSS 和 JavaScript 文件注册处理程序和位置。
我们将 Thymeleaf 用作视图引擎。 我们使用 Thymeleaf 的@{}
语法指向静态资源。
这是项目结构。
pom.xml
在pom.xml
文件中,我们具有以下依存关系:logback-classic
,javax.servlet-api
,spring-webmvc
,thymeleaf-spring5
和thymeleaf
。
resources/logback.xml
logback.xml
是 Logback 日志库的配置文件。
resources/css/format.css
这是format.css
文件。 它格式化p
元素。
resources/js/main.js
这是main.js
文件。 它将边框添加到div
元素。 请注意,即使 JavaScript 在科学方面提供了动态功能,但从 Spring 的角度来看,它仍被视为静态资源。
com/zetcode/config/MyWebInitializer.java
MyWebInitializer
注册 Spring DispatcherServlet
,它是 Spring Web 应用的前端控制器。
getServletConfigClasses()
返回 Web 配置类。
com/zetcode/config/WebConfig.java
WebConfig
通过@EnableWebMvc
启用 Spring MVC 注解,并为com.zetcode
软件包配置组件扫描。 它设置 Thymeleaf 引擎并注册静态资源处理程序。
我们重写addResourceHandlers()
来注册 JavaScript 和 CSS 文件的处理程序和位置。
com/zetcode/controller/MyController.java
MyController
提供主页的映射。 在应用中,我们仅使用一个视图。
WEB-INF/templates/homePage.html
homePage.html
是主页的视图。 它使用静态资源; 一个 CSS 和一个 JavaScript 文件。
我们使用特定的 Thymeleaf 语法引用静态文件。
在本教程中,我们展示了如何向 Spring 的ResourceHandlerRegistry
注册静态资源。