Spring Boot 初識

gary-liu發表於2017-05-30

介紹

You can use Spring Boot to create Java applications that can be started using java -jar or more traditional war deployments. We also provide a command line tool that runs “spring scripts”.

系統要求

當前最新正式版是Spring Boot 1.5.3.RELEASE ,所以本文參考的都是該版本的文件,要求 Java 7 ,構建工具要求 Maven (3.2+) Gradle 2 (2.9 or later) and 3,官方推薦 Java 8

Mac 安裝 Spring Boot CLI 客戶端

如果使用了homebrew,可以執行下面命令

 brew tap pivotal/tap
 brew install springboot

會安裝spring 命令到 /usr/local/bin

客戶端啟動示例

新建檔案 app.groovy

@RestController
class ThisWillActuallyRun {

    @RequestMapping("/")
    String home() {
        "Hello World!"
    }

}

執行命令 spring run app.groovy 然後在瀏覽器上開啟 localhost:8080 檢視內容。

手動建立專案

有三種方法:

1.https://start.spring.io/ 到這個網站填寫專案元資訊和依賴的包,可以自動生成 maven專案和gradle專案,生成的專案結構相對完整一些,挺不錯的選擇。

2.使用 Intellij idea 的 spring initializr 功能,其實和方法一類似,只是用本地IDE建立專案會更方便些。 File->New->Project->Spring Initializr,然後填下專案資訊,一路 next 即可。

3.先建個pom.xml

<?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>com.lzhenxing</groupId>
    <artifactId>myproject</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.3.RELEASE</version>
    </parent>

    <!-- Additional lines to be added here... -->

</project>

執行命令 mvn package build 專案,然後將專案匯入 idea 中,生成的專案沒什麼目錄結構,還要自己建資料夾結構,不太方便。

推薦用方法二來建立專案,方便又快捷。用第二種方法建立專案時,依賴選擇 web,那麼建立專案後,pom.xml 中會自動新增有關 web 的依賴包,會看到專案中 pom.xml 內容如下。


<?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>com.lzhenxing</groupId>
    <artifactId>myproject</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>myproject</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.3.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-tomcat</artifactId>
            <scope>provided</scope>
        </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>

web 專案 contoller 例子

mvn dependency:tree 檢視專案依賴樹

在建好的專案中建立一個簡單的 controller 例子


@RestController
@EnableAutoConfiguration
public class Example {

    @RequestMapping("/")
    String home() {
        return "Hello World!";
    }

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

}

然後在專案根目錄下執行命令


mvn spring-boot:run

啟動 web 服務,然後在瀏覽器上開啟 localhost:8080 檢視內容。

打 war 包

和 spring 專案類似,執行 mvn package,會在 target 目錄下生成 war 包。

github 上 spring boot demo :https://github.com/lzx2011/springBootPractice

參考資料

spring boot 官方文件

相關文章