springboot2.0的新特性:java
Web Flux優點:web
https://start.spring.io/
從上述入口快速搭建。Dependency
能夠選擇ReactiveWeb
/springmvc
等(或後續在pom.xml配置依賴便可)。
選擇springmvc依賴後的自動生成的pom以下:spring
<?xml version="1.0" encoding="UTF-8"?> <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>cn.whbing.learn.springboot</groupId> <artifactId>springboot-demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>springboot-demo</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.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> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
說明:apache
<parent>
主要用於引入默認包,及管理依賴版本。spring-boot-dependencies
是頂級依賴。經過點擊spring-boot-start-parent
查看:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.0.4.RELEASE</version> <relativePath>../../spring-boot-dependencies</relativePath> </parent> <artifactId>spring-boot-starter-parent</artifactId> <packaging>pom</packaging>
spring-boot-dependencies /\ / \ spring-boot-parent spring-boot-starter-parent
兩個核心依賴包:編程
spring-boot-starter-web
: 核心模塊,包括自動配置支持、日誌和YAML;spring-boot-starter-test
: 測試模塊,包括JUnit、Hamcrest、Mockito。Spring Boot Maven插件
參考 Spring Boot乾貨系列:(一)優雅的入門篇
能夠使用的命令(在配置插件pom的目錄下):mvn spring-boot:run
segmentfault
spring-boot-maven-plugin
插件提供了許多方便的功能:tomcat
public static void main()
方法來標記爲可運行類。1.無需springMVC配置web.xml
、無需配置tomcat
、無需組件掃描等,直接寫一個class,加上controller註解便可:springboot
package cn.whbing.springboot.web; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloWorldController { @RequestMapping("/hello") public String index() { return "Hello World"; } }
注:8080端口若顯示被佔用。能夠在application.properties
換一個端口,直接配置:mvc
server.port=8888
或者關閉進程app
kill -9 port
2.啓動
mvn spring-boot:run
便可啓動web頁面。
web模塊的打包支持jar
、war
等。都是支持java -jar
命令的。
注意:將package
改爲war
後,須要創建webapp
/WEB_INF
/web.xml
目錄和文件(空的也行,java同級)。
即以下目錄:
webapp |-WEB_INF |-web.xml
在有spring-boot-maven-plugin
的同級,執行打包命令
mvn -Dmaven.test.skip clean package
會將主包和依賴打進jar包。--> springboot-demo-0.0.1-SNAPSHOT.jar
將其解壓後發現MANIFESTI.MF
已經包含了入口文件。
Start-Class: cn.whbing.springboot.SpringbootDemoApplication
和使用assembly
用自帶的jar-with-dependences
相同。
此外,除了默認尋找主函數入口外,咱們能夠手動指定入口:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>cn.whbing.springboot.SpringbootDemoApplication</mainClass> </configuration> </plugin>
運行:
java -jar springboot-demo-0.0.1-SNAPSHOT.jar
便可啓動web頁面。
java同級目錄下要加入
webapp |-WEB-INF |-web.xml
一樣使用java -jar XX.war
多模塊之間有依賴,直接打包會出錯。這時,咱們須要在build
中在此加入依賴:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <dependencies><!--打包時依賴--> <dependency> <groupId>xx...</groupId> <artifactId>xx...</artifactId> </dependency> </dependencies> </plugin> </plugins> </build>
上述方式並不可取。咱們須要將該打包插件放在最外層的依賴模塊(如B-->A--C,咱們就將插件放B的pom中),打包會將全部依賴都打入。