一、前言

上次在本地简单部署了一个SSM框架的项目,由于非常繁琐的配置,我这次就试一下现在市面上非常火的SpringBoot。该框架基于Spring框架,由于在很多配置上采用了默认方式,所以在java应用程序构建上非常快速敏捷。

并且它还内嵌了tomcat、Jetty等服务器,使得它能作为一个独立的Jar文件运行,在生产环境上只需要用Nginx用反向代理指向该程序进度。

二、项目配置

通过前文关于maven的介绍,这里就跳过了,只按运行流程运行和部署项目。

1.导入项目

通过Open导入项目后,IDEA会立刻下载依赖,这时候你也可以去修改pom.xml然后再在Maven中,点击刷新按钮重新下载。

还有一个要注意的是可以给项目指定JDK版本,点击File->Project Structure->Project Settings->Project,找到Project SDK,然后可以根据框架版本切换JDK版本。

image-20251105174408450

2.Artifacts设置

还是上面的Project Structure中,Artifacts中添加一个Web Application: Archive,主要用于项目打包输出。

3.直接运行

SpringBoot有内置的服务,所以一般打开项目后,在启动下拉里会自动有一个 “MainApplication”,如果没有出现,点击 “Edit Configurations”然后添加一个 “Spring Boot”,最后在Configuration进行设置即可。

image-20251105180037489

4.运行访问

点击运行按钮 “run MainApplication”,就可以启动自身的web服务,然后浏览器通过启动面板里输出的地址进行访问了,URL在源码的controller里对应的控制器名/方法名。

三、打包部署

1.打包操作

打开IDEA的Maven,先点击 “Lifecycle” 的 “clean”,然后点击 “package”。等待执行完毕后,项目根目录就会新增 “target”,最外层也会新增一个jar包,这个就是项目的包了。

image-20251105190531081

2.运行部署

SpringBoot 默认打包方式jar,如果需要在tomcat容器中,可以在pom.xml的packaging修改为war,以及添加对应的依赖包。而对于生产环境部署,执行指令和Nginx可以参考下面配置:

1
java -jar jesper_seckill.jar
1
2
3
4
5
6
7
8
9
10
11
12
server {
listen 80;
server_name yourdomain.com;

location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

四、Tomcat虚拟主机多项目部署

这里以SSM项目为例,那么先打开Tomcat下conf的server.xml,然后添加一个Host。

1
2
3
<Host name="www.ssmts.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="SSM" path="" reloadable="true" />
</Host>

前提有三个,在host中创建了上面name的域名,docBase中的项目名,在webapps中一定有这个项目,第三个是要注意端口号,也就是Connector里指定的port。

最后在浏览器中直接输入”http://域名:端口/“, 就能直接访问项目了,如果是80端口可以不用指定,还一个是如果把打包的war直接放入webapps中,启动tomcat会直接解压到当前目录中。

五、其他问题

1.Tomcat输出中文乱码

找到Tomcat的conf下logging.properties,将java.util.logging.ConsoleHandler.encoding修改为GBK

1
java.util.logging.ConsoleHandler.encoding = GBK

2.IDEA编辑窗口关闭快捷键

打开settings->Keymap,直接搜索 “close”,选择Editor Tabs下的Close,然后右键清理快捷键,新增快捷键,我习惯 “Ctrl+W”,只需要按这两个键就可以,最后OK完成。

3.Tomcat项目访问

将编译后的项目复制到webapps中,启动tomcat,通过localhost:端口/项目名,可以直接访问对应项目。

五、写在后面

如果要让SpringBoot打包后的war在tomcat中使用,不光要移除自带的tomcat和添加依赖外,启动文件也需要做部分修改,不然放入tomcat容器内也无法启动。

image-20250408192801332