maven的packing默认是jar类型,
<packaging>pom</packaging> ---------> 父类型都为pom类型
<packaging>jar</packaging> ---------> 内部调用或者是作服务使用
<packaging>war</packaging> ---------> 需要部署的项目
使用SpringBoot构件的项目一般有两种发布方式:
1.jar包(可以直接通过java -jar 的命令进行启动)
2.war包(一般放到Tomcat等web容器里面)
1.jar包启动
将jar包上传到服务器上之后 ,使用命令:nohup java -jar xxx.jar & 启动服务能正常访问即可。
2.war包启动
使用外置的tomcat启动
在pom.xml里找到spring-boot-starter-web依赖节点,在其中添加如下代码,移除嵌入的tomcat插件
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除嵌入式tomcat插件 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
默认的启动类要继承SpringBootServletInitiailzer类,并复写configure()方法。
SpringBootServletInitializer的执行过程,简单来说就是通过SpringApplicationBuilder构建并封装SpringApplication对象,并最终调用SpringApplication的run方法的过程。
spring boot用注解的方式取代了传统的xml配置。
SpringBootServletInitializer就是原有的web.xml文件的替代。
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application .class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return super.configure(builder);
}
}
由于不使用Spring Boot 自带的Tomcat所以yml文件下的server配置不起作用
2.springboot添加自己设置的前缀名称
properties文件
server.servlet.context-path: /springboot
yml文件
server:
servlet:
context-path: /springboot