Tomcat 部署 Spring Boot Maven
1、新建SpringBoot工程,使用Spring Initializr,下一步
创建工程2、输入基本信息,Packaging那一栏选War,type选maven。
工程信息3、添加依赖,这里暂时只选Web和DevTools,其实也不懂为什么呢,后面再说
添加依赖4、下一步,选择默认,最后完成创建;
5、进入工程,idea需要一定时间来初始化工程,右下角会显示进度,点击开会显示类似窗口。看样子是下载依赖的包到本地。
初始化工程打开工程目录,如下所示:
工程目录6、新建一个HelloWorldController类,一定要确保自己的类在启动类所在的包下,不然不会解析。
HelloWorldController源码spring-boot会自动加载启动类所在包下及其子包下的所有组件.
其中@RestController和@RequestMapping自行百度
7、接下来找到启动类,点击main函数左边的运行按钮,如下:
点击运行8、这时候注意控制台输出,没有意外的话,一切都OK,只不过你会发现会输出一行
Process finished with exit code 0
是因为程序运行了一下正常退出,如果想让程序不退出,必须放到tomcat容器里(其他容器也行)。按照上面步骤创建的工程,pom.xml文件默认配置里,找到tomcat:
tomcat依赖有一行<scope>provided</scope>,scope有好几个值,自行百度(关键字 maven scope),这行告诉maven运行的时候不使用内置的tomcat,所以上面程序运行了一下就退出了。我们要去掉这一行,然后保存,这时候idea右下角应该会提醒pom发生变化,询问你是否import change,点击导入。如果没有弹这个窗口,可能怀疑刚才做的修改并没有生效,去主动刷新一下,在idea右侧,点开maven projects,如下图,左上角有一个刷新按钮,点一下。
刷新maven配置以上,去掉<scope>provided</scope>这一行之后,再运行程序,一切OK了,在浏览器输入http://localhost:8080/hello进行验证。
最终的文件目录图:
最终文件目录9、打包。这时候的程序是运行在本地的,如果想要发布到远程服务器,要进行打包部署。
注意打包的时候,要将pom.xml中tomcat配置修改回去,在上面一步中去掉了<scope>provides</scope>,这次得再加上,因为我们不用内置的tomcat,如果不加上,最终的包是包含内置的tomcat的。
打开idea右侧Maven Projects窗口,找到war,右键,Run Maven Build。注意控制台输出。成功之后,会把包输出到工程下target目录中,.war后缀。只要把这个文件部署到tomcat中就行了。(放到tomcat的webapps目录下,重启tomcat,tomcat会自动解压这个包并且运行。)