springBoot

生成初始项目

spring初始项目可在官方网站生成

需要分别填写Project类型、Language、Spring Boot版本、和项目相关信息如组ID、项目名称以及一些可能需要依赖的jar包

点击创建则可以创建成功并下载相关项目

创建第一个例子

正常创建springMaven项目后在pom文件中添加以下依赖(该依赖可以从上述方法创建springBoot工程后压缩包中的pom文件)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.tedu</groupId>
<artifactId>sc-hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.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>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>

编辑controller

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package com.ypjiao.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloController {
@RequestMapping("/hello/{value}")
@ResponseBody
public String Hello(@PathVariable String value){
return "hello "+value;
}
}

编辑启动项

springBoot支持通过Main方法调用特殊的jar包类启动服务(这种方式很适合以后的微服务启动)

1
2
3
4
5
6
7
8
9
10
11
12
package com.ypjiao;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class RunHello {
public static void main(String[] args) {
SpringApplication.run(RunHello.class,args);
}
}

启动项目

  • idea编辑工具中启动
1
2
3
4
5
//这种启动方式需要先装有插件
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
  • 直接启动jar包

需要依次启动123执行打包

执行命令启动java -jar jar包名称

打war包手动部署

修改pom.xml

修改包类型为war,增加依赖spring-boot-starter-tomcat,的provided表示使用外部的tomcat,而不使用集成微缩版的tomcat。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<packaging>war</packaging>
<!-- 如果有spring-boot-starter-tomcat依赖,为其添加适用于,避免打包到tomcat容器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!-- 还需要添加servlet包 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<!-- 添加打war包的maven插件和设置打包的时候跳过单元测试代码 -->
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<!--如果想在没有web.xml文件的情况下构建WAR,请设置为false-->
<failOnMissingWebXml>false</failOnMissingWebXml>
<!--设置war包的名字-->
<warName>checkroom</warName>
</configuration>
</plugin>

<!-- 让打包的时候跳过测试代码 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>

修改启动方法

继承SpringBootServletInitializer覆盖基类的configure方法

1
2
3
4
5
6
7
8
9
10
11
@SpringBootApplication
public class RunHello extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(RunHello.class);
}

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

不能RunApplication,只能执行maven命令打包,手动把war考入到tomcat下。


springBoot
https://andrewjiao.github.io/2019/07/24/springBoot/
作者
Andrew_Jiao
发布于
2019年7月24日
许可协议