Spring Boot打包war:页面存放与配置解析
114 浏览量
更新于2024-09-01
收藏 132KB PDF 举报
"这篇教程主要关注的是如何在Spring Boot项目中打包war包,并且处理页面存放的问题。在传统的Spring MVC项目中,静态资源如CSS、JS、HTML通常存放在`webapp/resources`目录下,而JSP等动态文件则位于`WEB-INF/views/jsp/`。但在Spring Boot应用中,这种方式有所不同。"
在Spring Boot中,如果你想要打包成war包,首先需要确保你的项目结构适应Spring Boot的约定。Spring Boot默认会寻找`src/main/resources/static`目录下的静态资源,如HTML、CSS、JavaScript文件。对于视图解析,它通常使用Thymeleaf、Freemarker或JSP,这些模板文件应该放在`src/main/resources/templates`目录下。
配置方面,Spring Boot应用通常不需要像传统Spring MVC那样显式配置`WebMvcConfigurer`,因为它已经内置了自动配置。但是,如果你需要自定义设置,例如更改静态资源或视图解析路径,你可以通过扩展`WebMvcConfigurationSupport`类而不是`WebMvcConfigurerAdapter`(因为后者在Spring Boot 2.x中已被弃用),然后覆盖相应的配置方法。
对于JSP支持,由于Spring Boot默认并不包含对JSP的支持,你需要在`pom.xml`文件中添加Tomcat JSP编译器依赖,并且配置`spring-boot-starter-web`排除默认的`TomcatServletWebServerFactory`,改为包含JSP支持的`TomcatJspServletContainer`:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
```
接着,你需要配置`application.properties`或`application.yml`以指定JSP的前缀和后缀:
```properties
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
```
或者在Java配置类中添加以下代码:
```java
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/jsp/");
resolver.setSuffix(".jsp");
registry.viewResolver(resolver);
}
}
```
现在,当你的Spring Boot应用被打包成war并部署到外部的Tomcat服务器时,静态资源和JSP页面将会按照你配置的方式进行处理。记得将war文件放入Tomcat的`webapps`目录下,启动Tomcat即可运行你的Spring Boot应用。
总结来说,Spring Boot打包成war包时,页面和静态资源的存放位置以及配置方式与传统Spring MVC有所不同。在Spring Boot中,静态资源通常放在`static`目录,JSP模板放在`templates`目录,并通过调整配置文件来适应Spring Boot的约定和特性。同时,为了支持JSP,需要额外的配置步骤和依赖管理。
2019-01-16 上传
2020-08-26 上传
2018-11-02 上传
2024-09-10 上传
2024-05-29 上传
2024-09-10 上传
2023-06-01 上传
2023-06-08 上传
2023-06-01 上传
weixin_38720322
- 粉丝: 4
- 资源: 921
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析