從零開始的Spring Boot (一)

LightOfMiracle發表於2017-05-27

從零開始的Spring Boot (一)

官方網址:http://projects.spring.io/spring-boot/

What is Spring boot?

關於Spring Boot的說明直接看官網的比較準確,因此不多贅述,Spring Boot的出現我認為屬於是SpringMVC的配置簡化版,也就是約定大於配置(個人這麼認為)免去了SpringMVC開發時候的一大堆的配置,官方說法 “just run”!。不多說,直接開始。

HelloWorld!

環境:eclipse + maven + jdk1.8

  1. 建立一個Maven專案
    這裡寫圖片描述

    這裡直接選擇Create a simple project,下一步,finish就行了。

  2. pom.xml匯入Spring Boot依賴
<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</groupId>
  <artifactId>helloworld</artifactId>
  <version>0.0.1-SNAPSHOT</version>

    <!-- Spring Boot 啟動父依賴 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.1.RELEASE</version>
    </parent>
     <!-- Spring Boot web模組 -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

  <build>
    <plugins>
        <!-- 為了使用jdk1.8加入此項配置 maven預設使用1.5版本 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
  </build>
</project>
  1. 建立HelloWorld.Java
package helloworld;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@EnableAutoConfiguration
@Controller
public class HelloWorld {

    @RequestMapping("/hello")
    public @ResponseBody String sayHello(){
        return "hello world";
    }

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

這裡的@EnableAutoConfiguration很明顯是讓SpringBoot自動配置的意思。SpringBoot會根據pom匯入的包儘可能的判斷我們想要幹什麼從從而自動的配置。@Controller宣告這是一個Controller,最後加上@ResponseBody註解返回json資料方便頁面上顯示。

  1. 執行HelloWorld.java(run as java application), 啟動完成後開啟瀏覽器輸入localhost:8080/hello/
    這裡寫圖片描述
    至此一個簡單的helloworld就完成了。

Question?

  1. spring-boot-starter-web都有些什麼包?
  2. 伺服器?
    這裡寫圖片描述
    這裡寫圖片描述
    可以看到其中包含了springboot的包,springMVC中常見的webmvc,aop,jackson等熟悉的包,tomcat包以及日誌包。說白了spring-boot-starter-web也就是個集中營壓縮包的感覺。
    在看看官方說明:
    這裡寫圖片描述
    • 可以看出springboot內嵌了tomcat,jetty,Undertow(JBoss下的一款伺服器)。
      並且springboot預設使用的是tomcat作為伺服器,如果想要切換jetty或者Undertow的話只需要修改pom檔案即可(自動配置)。
      很簡單,先排除spring-boot-starter-web中的tomcat元件再匯入jetty或者Undertow的包即可.(以jetty為例)
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jetty</artifactId>
        </dependency>
    </dependencies>

相關文章