springBoot项目正确认识打war包方式(含打包代码链接)

一:新建一个普普通通的springBoot项目

在这里插入图片描述

二:并且编写测试controller

@RequestMapping
@RestController
public class Controller {
    
    
    @RequestMapping("/zzh")
    public String toString() {
    
    
        return "zzh666";
    }
}

三:改造启动类(重点)

主要就是继承SpringBootServletInitializer,实现SpringBootServletInitializer可以让spring-boot项目在web容器中运行

@SpringBootApplication
public class AlinkApplication extends SpringBootServletInitializer {
    
    
    /**
     * 实现SpringBootServletInitializer可以让spring-boot项目在web容器中运行
     */
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    
    
        builder.sources(this.getClass());
        return super.configure(builder);
    }

    public static void main(String[] args) {
    
    
        SpringApplication.run(AlinkApplication.class, args);

    }
}

四:配置pom文件

添加如下依赖:就是排除内置tomcat和web环境运行的依赖

 <!-- spring-boot web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!-- 排除内置容器,排除内置容器导出成war包可以让外部容器运行spring-boot项目-->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
        </dependency>

修改打包方式为war

<packaging>war</packaging>

打包

点clean在点package成功打包
在这里插入图片描述

在这里插入图片描述

测试

把这个war扔我服务器上测试一下
在这里插入图片描述
由于我的tomcat没有配置server文件中的Context 结点,所以url需要手动输入指定访问哪个项目。成功啦nice。另外我这里的项目配置了
server.servlet.context-path=/MyProject失效了,emm无解了。如果生效应该要输入,http://ip/demo-0.0.1-SNAPSHOT/MyProject/zzh
吧,哈哈哈哈,我搞不清就这样吧,能访问就行
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42875345/article/details/110878401
今日推荐