SpringBoot配置成war包运行

1 背景

最近两个项目都是用Springboot写后端接口,我们在创建springboot项目时,会选择运行包是jar还是war,当我们选择jar时,运行启动没问题,但是打成war包,就要配置很麻烦,但是修改成war后,发现运行启动不行了。期间公司组织了一次springboot 培训,恰巧培训中提到创建Springboot+JSP做一个web项目,而所需要依赖于war包运行。正巧也是符合我现在后端接口项目的运行方式,不想用jar!!!

2 配置方法

1、pom.xml修改

  • 将所有私有<scope>provided</scope>注释掉

  • 修改<packaging>为war

    <packaging>war</packaging>
    
  • 引入tomcat-servlet-api包和spring-boot-starter-tomcat包

      <!--Springboot打war包-->
      <dependency>
          <groupId>org.apache.tomcat</groupId>
          <artifactId>tomcat-servlet-api</artifactId>
          <version>8.0.36</version>
       <!--   <scope>provided</scope>-->
       </dependency>
       <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-tomcat</artifactId>
          <!--            <scope>provided</scope>-->
        </dependency>
    

2、在Application类中加入SpringApplicationBuilder方法,这里我就直接上代码

package com.shengda;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

/**
 *  .@MapperScan("com.shentong.*.mapper") 将项目中对应的mapper类的路径加入项目,和mapper里    的.java添加一个即可
 *  .@SpringBootApplication = (默认属性)@Configuration + @EnableAutoConfiguration +     @ComponentScan
 *  1.@Configuration是搭配@Bean使用,两者可以创建一个简单的Spring配置类,可以用来代替相应的xml配置文件
 *  2.@EnableAutoConfiguration 能够自动配置spring的上下文,试图猜测和配置你想要的bean类,通常会    自动根据你的类路径和你的bean定义自动配置。
 *  3.@ComponentScan:会自动扫描指定包下的全部标有@Component的类,并注册成bean,当然包括@Component下的子注解@Service,@Repository,@Controller
 */
@SpringBootApplication
public class TrafficlightMonitorApplication extends SpringBootServletInitializer {
/**
 * .Description:打包成war
 * .Author:Carl
 * .@Date: 2018/9/18
 */
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    // 注意这里要指向原先用main方法执行的Application启动类
    return builder.sources(TrafficlightMonitorApplication.class);
}
/**
 * .Description:启动主函数
 * .Author:QiongWu
 * .@Date: 2018/9/18
 */
public static void main(String[] args) {
    SpringApplication.run(TrafficlightMonitorApplication.class, args);
  }
}

我以自己理解的方式表述了方法,很好的解决了当初我搭建的jar包的springboot项目,每次要切换配置打成war的麻烦。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 杏树结着青绿的果 夏娃看见了,会不会偷吃? 这酸到牙缝里的青果! 它却像灯,打着光 照亮我们圆溜溜的小眼 老爷爷守...
    沐鸽阅读 3,555评论 1 1
  • --转自牛客网,作为记录--主要问基础,抽象类,接口,spring,数据库,测试框架等等抽象类和接口:http:/...
    Miley_MOJIE阅读 2,817评论 0 0
  • L向阳L阅读 3,349评论 0 0

友情链接更多精彩内容