Spring Boot打包war:页面存放与配置解析

0 下载量 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,需要额外的配置步骤和依赖管理。