最近在研究spring boot的框架,真的,真的,这个框架比之前用的spring mvc轻便多了,谁用谁知道,用它一时爽,一直用一直爽,哈哈哈哈,,,,先对这个框架chui了一波,推荐使用,真的少了许多配置。
但是呢,遇到一个问题,一般搭建都是使用内置的tomcat形式,也就是jar部署形式,直接把tomcat服务内嵌在服务中,这样又少了 部署上的难题。然而,有些情况又需要使用war形式,比如多个系统共用一个端口。这样一来需要把jar形式转换成war。经过测试,有些路由地址(webapi,接口,http请求)竟然访问不了了。比如,原先的192.168.1.2:8080/hello,现在访问出现404错误(部署war)。
那么别急,接下来我将演示怎么样把这个服务弄起来,别眨眼哦!!!!
第一步:部署的时候,需要修改pom.xml文件,声明下,需要部署war形式。增加一行:<packaging>war</packaging>如下图
第二步,右键项目,maven,Update Project
第三步,需要修改主方法,也就是主属性,新建工程时候默认创建的主方法,如下图,需要增加截图上的代码。
@SpringBootApplication
public class SpringBootDemoApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SpringBootDemoApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(SpringBootDemoApplication.class, args);
}
}
自定义一个访问信息如下,在同一个目录下新建controller包,然后映射
第四步,生成war包,启动maven,run as,maven clean先,然后maven install,在target目录找到war包。
第五步:将war包放在tomcat的webapp文件夹下,会自动进行解压,默认生成的war文件的文件名很长,可以自定义名,然后路由需要带上这个文件夹名进行http访问
第六步,测试,需要带上文件夹名的路径。同时,application.properties配置的一些端口信息,和路由地址信息将失效,按照外部的tomcat端口和文件夹地址进行访问。
如下图是jar形式的部署,http://localhost:8081/hello,端口是设置的application.properties端口8081
那么换到外部的tomcat的访问形式变成了这样http://ip:port/SpringBootDemo/hello。需要增加了一个虚拟路径,也就是文件夹的地址SpringBootDemo
好了,就写到这儿,如有问题,希望大家指正,相互学习。