Spring Boot可以打成jar包,也可以打成war包。启动方式类有main函数做为入口,比如:java -jar xxx.jar。Spring Boot默认内置Tomcat服务器,当然也可以将war包,部署到其他web容器中(Tomcat、weblogic等)。
1、jar包
pom.xml
<groupId>com.test</groupId>
<artifactId>demo</artifactId>
<version>0.1.1-SNAPSHOT</version>
<name>demo</name>
...
<packaging>jar</packaging>
...
生成jar包
在源代码根目录下,运行mvn package -Dmaven.test.skip=true
,根据pom中的packaging值生成demo-0.1.1-SNAPSHOT.jar;参数:maven.test.skip=true 是不打包测试代码。
运行
java -jar demo-0.1.1-SNAPSHOT.jar
或后台运行
nohup java -jar demo-0.1.1-SNAPSHOT.jar &
测试
修改control类中的方法,去掉return "/login"字符串中的“/”
@RequestMapping("/login")
public String login(HttpServletRequest request, Map<String, Object> map)
throws Exception {
System.out.println("-- UserController.login --");
...更多源代码参见之前博文...
return "login";
}
2、war包
pom.xml调整packaging为war,同时排除tomcat
...
<packaging>war</packaging>
...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
DemoApplication.java修改启动类,使其继承SpringBootServletInitializer,新增configure方法。其他不变。
@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer{
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(DemoApplication.class);
}
}
生成war包命令与jar包相同,生成后可以修改war包名称,比如:myspringboot.war,部署到其他应用服务器。
运行war包,application.properties中配置的端口不起作用,将有应用服务器决定。