🏆本文收录于 《Spring Boot从入门到精通》 ,专门攻坚指数提升,2023 年国内最系统+最强(更新中)。
本专栏致力打造最硬核 Spring Boot 从零基础到进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中…欢迎大家订阅持续学习。
环境说明:Windows10 + Idea2021.3.2 + Jdk1.8 + SpringBoot 2.3.1.RELEASE
在现代Web开发中,静态资源扮演着非常重要的角色。静态资源包括但不限于CSS、JavaScript、HTML文件和图像等。在Spring Boot中,通过处理静态资源,我们可以实现前端网页的访问。本文将讨论如何使用Spring Boot框架来映射静态资源。
本文将介绍如何使用Spring Boot框架来映射静态资源。我们将介绍如何配置Maven项目,如何将静态资源映射到不同的URL路径和如何使用模板引擎来渲染HTML页面。此外,我们还将介绍如何使用Spring Boot的测试框架来测试我们的代码。
我们将使用Maven来构建我们的Spring Boot项目。在pom.xml文件中,我们需要添加对Spring Boot的依赖项以及其他必要的依赖项,例如对Thymeleaf模板引擎的支持。我们还需要将资源文件夹添加为项目的源文件夹。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
</build>
在Spring Boot中,我们可以通过在application.properties文件中设置spring.mvc.static-path-pattern属性来配置静态资源的URL路径。
spring.mvc.static-path-pattern=/resources/**
在上述示例中,静态资源将映射到/resources/路径下。
默认情况下,Spring Boot会在classpath下搜索public、static和resources文件夹中的静态资源。如果需要将静态资源放置在其他位置,我们可以使用spring.resources.static-locations属性来指定路径。
如果我们想将静态资源放置在Web应用程序的根路径下,我们可以将以下代码添加到Spring Boot应用程序的主类中。
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**")
.addResourceLocations("classpath:/static/");
}
}
在Spring Boot中,我们可以使用模板引擎来渲染HTML页面。Thymeleaf是一种流行的模板引擎,它提供了一种简单而强大的方式来创建动态网页。
我们需要将以下代码添加到application.properties文件中来启用Thymeleaf模板引擎。
spring.thymeleaf.enabled=true
在使用Thymeleaf时,我们还需要添加以下依赖项。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
在Spring Boot中,我们可以使用测试框架来测试代码。下面是一个简单的测试用例,用于测试我们的静态资源映射。
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class StaticResourceTest {
@Autowired
private TestRestTemplate restTemplate;
@LocalServerPort
private int port;
@Test
public void testStaticResource() {
String response = restTemplate.getForObject("http://localhost:" + port + "/resources/test.html", String.class);
assertTrue(response.contains("Hello, World!"));
}
}
本文介绍了如何使用Spring Boot框架来映射静态资源。我们介绍了如何配置Maven项目,如何将静态资源映射到不同的URL路径以及如何使用Thymeleaf模板引擎来渲染HTML页面。此外,我们还介绍了如何使用Spring Boot的测试框架来测试我们的代码。