文章出處

  參考  http://blog.csdn.net/catoop/article/details/50501664#



一、簡介

Spring 官方網站本身使用Spring 框架開發,隨著功能以及業務邏輯的日益復雜,應用伴隨著大量的XML配置文件以及復雜的Bean依賴關系。
隨著Spring 3.0的發布,Spring IO團隊主鍵開始擺脫XML配置文件,并且在開發過程中大量使用“約定優先配置”(convention over configuration)的思想來擺脫Spring框架中各種復雜的配置,衍生了Java Config。

Spring Boot正是在這樣的一個背景下被抽象出來的開發框架,它本身并不提供Spring框架的核心特性以及擴展功能,只是用于快速、敏捷地開發新一代基于Spring框架的應用程序。也就是說,它并不是用來替代Spring的解決方案,而是和Spring框架緊密結合用于提升Spring開發者體驗的工具。同時它集成了大量常用的第三方庫配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot應用中這些第三方庫幾乎可以零配置的開箱即用(out-of-the-box),大部分的Spring Boot應用都只需要非常少量的配置代碼,開發者能夠更加專注于業務邏輯。

該項目旨在幫助開發者更容易地創建基于Spring的應用程序和服務,使得現有的和新的Spring開發者能夠最快速地獲得所需要的Spring功能。

Spring Boot不生成代碼,且完全不需要XML配置。其主要目標如下:
- 為所有的Spring開發工作提供一個更快、更廣泛的入門經驗。
- 開箱即用,你也可以通過修改默認值來快速滿足你的項目的需求。
- 提供了一系列大型項目中常見的非功能性特性,如嵌入式服務器、安全、指標,健康檢測、外部配置等。

博主準備寫一組 Spring-Boot 入門的帖子,僅為了拋磚引玉,讓需要的同學可以盡快了解如何使用Spring-Boot,內容參考官網和網上的資料(http://projects.spring.io/spring-boot/)。


下面是目錄:

Spring-Boot 入門

Spring-Boot Controller

Spring-Boot Servlet

Spring-Boot 過濾器、監聽器

Spring-Boot 攔截器

Spring-Boot 靜態資源處理

Spring-Boot 啟動加載數據

Spring-Boot 日志記錄

Spring-Boot JDBC 連接數據庫

Spring-Boot JPA 連接數據庫

Spring-Boot MyBatis 連接數據庫

Spring-Boot 連接數據庫 - 多數據源

Spring-Boot Shiro 權限管理

Spring-Boot 集成Shiro和CAS

Spring-Boot 環境變量讀取 和 屬性對象的綁定

Spring-Boot 動態數據源(多數據源自動切換)

Spring-Boot 事務的使用

Spring-Boot 部署與服務配置


開發工具:Spring Tool Suite v_3.7.2(簡稱STS)
官網地址:http://spring.io/tools/sts

二、入門實例 - HelloWorld

File > New > Spring Starter Project
這里寫圖片描述
這里寫圖片描述

Next > Finish

項目創建完成:
這里寫圖片描述

可以看出,項目源碼就一個Java類,在pom.xml中有spring-boot-starter-web的依賴。

SpringBootSampleApplication.java

package org.springboot.sample;

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

@SpringBootApplication
public class SpringBootSampleApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootSampleApplication.class, args);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

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>org.springboot.sample</groupId>
    <artifactId>spring-boot-sample</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>spring-boot-sample</name>
    <description>Spring Boot Sample Web Application</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.3.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <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>
  • 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
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49

這樣就完成了項目的創建,下面我們創建一個 HelloController.java 定義3個方法

package org.springboot.sample.controller;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/hello")
public class HelloController {

    @RequestMapping
    public String hello() {
        return "Hello Spring-Boot";
    }

    @RequestMapping("/info")
    public Map<String, String> getInfo(@RequestParam String name) {
        Map<String, String> map = new HashMap<>();
        map.put("name", name);
        return map;
    }

    @RequestMapping("/list")
    public List<Map<String, String>> getList() {
        List<Map<String, String>> list = new ArrayList<>();
        Map<String, String> map = null;
        for (int i = 1; i <= 5; i++) {
            map = new HashMap<>();
            map.put("name", "Shanhy-" + i);
            list.add(map);
        }
        return list;
    }
}
  • 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
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

然后現在可以直接運行 SpringBootSampleApplication 的main方法,和執行普通java程序一樣。
然后可以看到spring-boot 內置server容器(默認為Tomcat),這一切spring-boot 都幫我們做好了。

控制臺輸出內容 Started SpringBootSampleApplication in 7.358 seconds (JVM running for 9.154) 表示服務已經啟動。

在瀏覽器輸入我們3個請求便可看到結果。
http://localhost:8080/hello
輸出:Hello Spring-Boot
http://localhost:8080/hello/info?name=shanhy
輸出:{“name”:”shanhy”}
http://localhost:8080/hello/list
輸出:[{“name”:”Shanhy-1”},{“name”:”Shanhy-2”},{“name”:”Shanhy-3”},{“name”:”Shanhy-4”},{“name”:”Shanhy-5”}]

通過我們的Hello實例,相信大家一目了然,可謂spring-boot創建一個項目如此簡單,完全可以在幾分鐘內將服務啟動。
spring-boot拋棄繁瑣的配置,讓開發人員更專注與業務邏輯的實現。后面幾篇文章將會對spring-boot的多個方面通過實例的方式呈現給大家。





文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()