SpringBoot默认达成jar包,使用SpringBoot构想web应用,默认使用内置的Tomcat。但考虑到项目需要集群部署或者进行优化时,就需要打成war包部署到外边的服务器上运行。
项目打war包的步骤:
1.首先导入依赖,
<!-- 继承springboot的父级项目的依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!--属性配置-->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<!--springboot开发web项目的起步依赖-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--引入springboot内嵌的tomcat对js的解析包-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!-- servlet 依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<!--jstl标签依赖的jar包start-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<!--sprignboot提供的maven打包插件-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
<resource>
<directory>src/main/webapp</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
</build>
2.将项目的打包方式设置为war
<packaging>war</packaging>
3.在项目中创建一个controller类,供浏览器调用:
@Controller
public class WarControllrer {
@RequestMapping("/boot/json")
public @ResponseBody Object json(){
HashMap<String, Object> map = new HashMap<>();
map.put("name","思特奇");
map.put("address","上海智诚");
return map;
}
@RequestMapping("/boot/jsp")
public String jsp(Model model){
model.addAttribute("name","北京思特奇");
return "index";
}
}
4.在运行类文件中继承SpringBootServletInitializer,重写configure方法,
@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);
}
}
5.因为controller中调用了一个返回字符串的函数,直接写一个jsp页面,将controller中的值返回出来:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
${name}<%--jstl表达式--%>
</body>
</html>
6.编写项目的配置文件,application.properties
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp
然后直接将项目打包,maven install
在maven仓库下能找到对应的文件,再将这个文件放到tomcat的webapps文件夹下,启动tomcat,在浏览器调用请求,即可实现。
注意请求的时候,要加上路径,就是在tomcat解压之后的路径,文件夹名即可。