com.study
FirstSpringBoot
1.0.0
jar
解决SpringBoot打包成jar后运行提示没有主清单属性
org.springframework.boot
spring-boot-maven-plugin
true
mvn install #编译
java -jar FirstSpringBoot-1.0.0.jar #默认启动方式,一旦关闭客户端,服务终止。
java -jar FirstSpringBoot-1.0.0.jar & #后台启动方式
@SpringBootApplication
public class HelloWebApplication extends SpringBootServletInitializer {
public static void main(final String[] args) {
SpringApplication.run(HelloWebApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(final SpringApplicationBuilder builder){
return builder.sources(HelloWebApplication.class);
}
}
com.study
FirstSpringBoot
1.0.0
war
将嵌入的tomcat依赖方式改为provided。
org.springframework.boot
spring-boot-starter-tomcat
provided
利用maven的mvn package 进行打包,打包成功后会在target目录下生成war包,将war包部署到tomcat项目文件下(默认是webapp文件夹下),重启tomcat,打开浏览器访问对应地址,访问地址需要加上项目名字,如果需要手动设置war包的名字,可以通过以下修改pom文件方式修改项目名:
org.apache.maven.plugins
maven-war-plugin
SpringBoot
mvn install,把生成的war包丢到tomcat的webapp目录下,启动tomcat
注意:war包部署方式,访问地址需要加上项目名:http://服务器ip:服务器里Tomcat配置的端口/项目名/接口路径
注意:我们在application文件中配置的server.port=8081并没有生效
但是配置的端口号没有生效,访问的还是8080端口。
原因是:像 server.port
这样的Spring Boot属性只有在使用嵌入式Tomcat时才会生效 . 也就是说,如果您通过使用 SpringApplication.run()
执行 main
方法或通过创建可执行JAR并使用 java -jar
启动它来启动应用程序 .
将应用程序作为WAR归档文件部署到独立的Tomcat时,必须通过编辑 server.xml
以及可能的其他配置文件以传统方式配置Tomcat .
(3)war包和jar包的区别
jar包自带内置的tomcat,可以通过server.port,``server.context-path
等配置来修改tomcat属性。
war包需要放在外在的tomcat的webapp目录下,然后启动tomcat,才能访问。
jar包访问路径 :ip:port/context-path(如果配置了)/接口路径
war包访问路径:ip:port(tomcat配置的端口)/项目名/接口路径