事情起因:我用SpringBoot写了一个博客项目,想挂到某小霸王服务器上,但是怎么挂也挂不上去,最后导致了服务器到期了我还没挂上去,人间悲剧
于是向大佬请教了一下,得到了一份详细的教程
放到服务器上时要使用服务器上的tomcat,也就是外部服务器,但是SpringBoot是使用的内置服务器,这时候就需要配置了
- 首先我们需要在pom文件中添加依赖
<!--使用外部tomcat-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
- 在SpringBoot自带的Application启动类所在目录下新建启动类
// 新建的启动类的内容
// 让该类继承SpringBoot中的SpringBootServletInitializer
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
// 找到SpringBoot自带的启动类
return application.sources(BaomingApplication.class);
}
}
注:新建的启动类一定要和SpringBoot自带的启动类在一个目录下
- 在pom文件中的project中设置packing,将打包方式设置成war
<packaging>war</packaging>
- 在pom文件中的build中设置finalName
<build>
<finalName>chengguo</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
注:finalName是项目打成war包放到服务器上运行,访问该项目的入口
全部配置完之后,通过maven将项目打成war包,放到服务器的tomcat文件夹下的webapps中,重启tomcat服务器,你会发现在webapps下会有一个和你war包同名的文件夹,正常情况下你的项目就可以在服务器上运行了
几个需要注意的点
-
网址访问路径默认是服务器ip地址:端口号/项目名/映射路径
以我的网页为例,129.204.18.121是服务器ip地址,8080是tomcat端口号,chengguo是项目名,baoming是映射路径 -
数据库连接池的url也要改成服务器ip地址,而不是localhost
-
数据库连接池中的username和password应和服务器上数据库保持一致,而不是和本地数据库保持一致
-
war包形式,在SpringBoot项目的配置文件配置的端口号只在本机有效,打包放到服务器上后没有效果,以tomcat的端口号为准
假如你和我一样没有服务器,但是想学SpringBoot配置外部tomcat服务器怎么办?
为什么不问问神奇的🐚呢
使用本地的tomcat服务器就好了
-
按照上方的步骤配置你的项目
注:此时数据库是本地数据库,不需要额外修改 -
再通过idea配置外部tomcat服务器
- 配置好tomcat之后,向tomcat中加入我们的项目
- 然后就可以在外部tomcat上愉快的运行我们的项目啦
需要注意的问题
这个是tomcat服务器启动后默认打开的网页(可修改)
这个是项目的默认访问路径(可修改)
修改后的结果