Springboot發佈war包部署
項目發佈上線的時候,我們需要將項目打包成war包的形式,放到Tomcat的webapps下,然後運行Tomcat發佈項目。那麼在IDEA中SpringBoot項目怎麼打包成war包的形式呢?
首先新建一個SpringBoot項目,配置打包方式爲war
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.jiuyue</groupId>
<artifactId>springboot-war</artifactId>
<version>1.0.0</version>
<!--打包方式-->
<packaging>war</packaging>
這是一個web項目,前端頁面我們使用JSP,則需要的依賴有:
<dependencies>
<!--web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--引入springBoot 內嵌的Tomcat對JSP的解析包-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!--servlet-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<!--jsp-->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
</dependency>
<!--jstl-->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
在application.properties配置文件中配置前後綴
server.port=8088
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp
控制器類,提供訪問接口
@Controller
public class WarController {
@RequestMapping("war/json")
@ResponseBody
public Object json( ){
Map<String,Object> map = new HashMap<String,Object>();
map.put("name","九月json");
return map;
}
@RequestMapping("war/jsp")
public String home(Model model){
System.out.println("jsp");
model.addAttribute("name","九月jsp");
return "home";
}
}
需要Maven插件,以及需要配置webapp下面的資源文件信息
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/webapp</directory>
<targetPath>META-INF/resources</targetPath>
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
</build>
在啓動類需要繼承SpringBootServletInitializer並重寫它的configure方法。
/**
* Create bySeptember
* 2019/3/3
* 14:56
*/
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
在Maven Projects的項目找到該項目===》打開項目===》Lifecycle===》install。
則在maven倉庫中生成了項目的war包。
把war包複製到你的Tomcat的webapps下運行Tomcat的就完成了發佈war包部署