Spring Boot 揭祕與實戰(一) 快速上手

樑桂釗發表於2016-12-19

計劃開個專欄,講解《Spring Boot 揭祕與實戰》系列。
原文地址:Spring Boot 揭祕與實戰(一) 快速上手
部落格地址:blog.720ui.com/

簡介

什麼是Spring Boot

Spring Boot其設計目的是用來簡化 Spring 應用的初始搭建以及開發過程。Spring Boot 的目標不在於為已解決的問題域提供新的解決方案,而是為平臺帶來另一種開發體驗,從而簡化對這些已有技術的使用。Spring Boot 充分利用了 JavaConfig 的配置模式以及“約定優於配置”的理念,能夠極大的簡化基於 Spring MVC 的 Web 應用和 REST 服務開發。對於已經熟悉 Spring 生態系統的開發人員來說,Spring Boot 是一個很理想的選擇。

為什麼選擇Spring Boot

  • Spring Boot 使編碼變簡單
  • Spring Boot 使配置變簡單
  • Spring Boot 使部署變簡單
  • Spring Boot 使監控變簡單

相關知識

Spring Boot的spring-boot-starter

Spring Boot提供了很多”開箱即用“的依賴模組,都是以spring-boot-starter-xx作為命名的。下面列舉一些常用的模組。

  • spring-boot-starter-logging :使用 Spring Boot 預設的日誌框架 Logback。
  • spring-boot-starter-log4j :新增 Log4j 的支援。
  • spring-boot-starter-web :支援 Web 應用開發,包含 Tomcat 和 spring-mvc。
  • spring-boot-starter-tomcat :使用 Spring Boot 預設的 Tomcat 作為應用伺服器。
  • spring-boot-starter-jetty :使用 Jetty 而不是預設的 Tomcat 作為應用伺服器。
  • spring-boot-starter-test :包含常用的測試所需的依賴,如 JUnit、Hamcrest、Mockito 和 spring-test 等。
  • spring-boot-starter-aop :包含 spring-aop 和 AspectJ 來支援面向切面程式設計(AOP)。
  • spring-boot-starter-security :包含 spring-security。
  • spring-boot-starter-jdbc :支援使用 JDBC 訪問資料庫。
  • spring-boot-starter-redis :支援使用 Redis。
  • spring-boot-starter-data-mongodb :包含 spring-data-mongodb 來支援 MongoDB。
  • spring-boot-starter-data-jpa :包含 spring-data-jpa、spring-orm 和 Hibernate 來支援 JPA。
  • spring-boot-starter-amqp :通過 spring-rabbit 支援 AMQP。
  • spring-boot-starter-actuator : 新增適用於生產環境的功能,如效能指標和監測等功能。

Java Config 自動配置

Spring Boot 推薦採用基於 Java Config 的配置方式,而不是傳統的 XML。例如,@Configuration、@Bean、@EnableAutoConfiguration、@CompomentScan、@PropertySource、@Repository、@Service、@RestController等。

快速上手

Spring Boot初體驗

通過 Spring Boot,建立新的 Spring 應用變得非常容易,只需要簡單的幾個步驟就可以建立出一個應用。
首先,我們先建立一個 POM 檔案。

<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>
    <parent>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-parent</artifactId>
          <version>1.3.3.RELEASE</version>
     </parent>
    <groupId>com.lianggzone.demo</groupId>
    <artifactId>springboot-action</artifactId>
    <version>0.1</version>
    <packaging>war</packaging>
    <name>springboot-action</name>
    <dependencies>
        <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
              </plugin>
        </plugins>
    </build>
</project>複製程式碼

然後,第二步,建立 Java 程式碼。

@SpringBootApplication
public class ApplicationDemo {

    public static void main(String[] args) throws Exception {
        System.out.println(" springApplication run !");
        SpringApplication.run(ApplicationDemo.class, args);
    }
}複製程式碼

快速搭建web工程

通過 Spring Boot,建立 web 工程也非常簡單。
修改 POM 檔案,新增依賴。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>複製程式碼

建立Java程式碼

@RestController
@EnableAutoConfiguration
public class RestfulApiWebDemo {
    @RequestMapping("/")
    String home() {
        return "Hello World!";
    }
    public static void main(String[] args) throws Exception {
        SpringApplication.run(RestfulApiWebDemo.class, args);
    }
}複製程式碼

直接執行 Java 類,或者可以通過“mvn spring-boot:run”在命令列啟動該應用。會啟動一個內嵌的 Tomcat 伺服器執行在 8080 埠。訪問 http://localhost:8080 可以看到頁面上顯示“Hello World!”。
此外,在 POM 檔案新增外掛。

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
</plugin>複製程式碼

在新增了外掛後,當執行“mvn package”進行打包時,會打包成一個可以直接執行的 JAR 檔案,使用“java -jar”命令就可以直接執行。

原始碼

相關示例完整程式碼: springboot-action

(完)

更多精彩文章,盡在「服務端思維」微信公眾號!

Spring Boot 揭祕與實戰(一) 快速上手

相關文章