Springboot tomcat-embed-jasper依赖说明

       使用过Springboot的同学都知道其已内置tomcat(spring-boot-starter-web),无需打war包,打成jar包直接运行。最近学习使用Springboot发现项目中的pom文件引入了tomcat-embed-jasper(对jsp的支持的依赖)但scope为provided。

        于是不明白感觉springboot的tomcat应该自带了tomcat-embed-jasper吧,遂将pom文件该依赖删掉,eclipse启动项目无报错,访问页面发现所有的jsp页面都会被下载而不能被访问。但是又一个令我疑惑的问题是其依赖scope为provided,也就是说打包时该依赖不会被包含在lib包内,但是我的jar启动的页面访问却没有问题。

        以上说明一个问题:springboot自带的tomcat并没有携带tomcat-embed-jasper的依赖

        又做了一个实验:将tomcat-embed-jasper的scope去掉后,打成jar包,启动项目时报错==>jasper的jar包冲突

        结论猜测:检查pom文件后,猜测一定是spring-boot-maven-plugin(1.4.2.RELEASE)插件在打包时自动额外的添加tomcat-embed-jasper的支持。而我们在工具中启动项目时并没有打包,所以需要该依赖对我们eclipse中项目jsp的支持,为防止其打包冲突,遂设置其scopeprovided。

(如有不对的理解欢迎指正~)

要在Spring Boot项目中实现与Nginx的整合,通常会采取以下步骤[^1]: 1. **替换部署方式**: 将Spring Boot项目的默认部署方式从jar更改为war,以支持WAR文件部署。这可以通过修改`build.gradle`或`pom.xml`文件来完成,删除或注释掉`spring-boot-starter-tomcat`依赖(如`<scope>provided</scope>`),并添加对Servlet API的明确依赖,如`<dependency>`标签所示。 ```xml <!-- 如果使用Gradle --> dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' runtimeOnly 'org.apache.tomcat.embed:tomcat-embed-jasper' } <!-- 或者如果使用Maven --> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>runtime</scope> </dependency> </dependencies> ``` 2. **创建WAR包**: 使用构建工具(如Gradle的`./gradlew build`或Maven的`mvn clean package`)生成WAR文件。 3. **配置Nginx**: 在Nginx的配置文件(通常是`/etc/nginx/nginx.conf`或`/usr/local/nginx/conf/nginx.conf`)中,创建一个新的location块来定义反向代理。示例配置可能如下: ```nginx server { listen 80; server_name yourdomain.com; location / { proxy_pass http://localhost:8080; # 替换为你本地的Tomcat端口号 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ``` 4. **启动Nginx和Tomcat**: 启动Nginx并确保它监听的端口是公开的。然后,在同一台机器上运行你的Spring Boot应用,让它监听不同的端口(如8080)。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值