天天看點

Spring Boot 快速入門大綱Spring Boot 快速入門案例

大綱

下面您将會看到:

  1. Spring Boot 快速入門案例
  2. Spring Boot 整合持久層開發
  3. Spring Boot 整合控制層開發
  4. Spring Boot 整合視圖層開發
  5. Spring Boot 整合安全架構
  6. Spring Boot 整合定時任務
  7. Spring Boot 測試
  8. Spring Boot 自動裝配原理

導圖如下

Spring Boot 快速入門大綱Spring Boot 快速入門案例

介紹

spring boot 是用來簡化原先的應用開發,屬于一種輕量級架構,程式員不需要編寫大量的配置檔案,即可以運作起來應用。

spring boot 有如下特性

1、 spring boot 簡單易上手

2、 spring boot 内嵌 tomcat 部署友善

3、 spring boot 可以零配置

安裝

這裡使用 idea 向導建構 spring boot 應用

選擇建立應用,選擇 spring Initializr

Spring Boot 快速入門大綱Spring Boot 快速入門案例

選擇坐标

Spring Boot 快速入門大綱Spring Boot 快速入門案例

選擇 Developer Tools 選項中的 Spring boot DevTools , lombook, Spring Configuration Processor 其中 Spring boot DevTools 為spring boot 額外提供的開發工具,lombook為簡化POJO 類的 get set 方法,Spring Configuration Processor 用于進行 Spring boot 應用配置的讀取。

選擇如下

Spring Boot 快速入門大綱Spring Boot 快速入門案例

由于是 web 應用,需要選擇 web 選項,選擇 Spring Web Starter 用于為該web應用添加啟動類。

選擇如下 如圖 1 - 4

Spring Boot 快速入門大綱Spring Boot 快速入門案例

再次選擇 sql 選項。選擇 MyBatis Framework 這裡持久層架構使用 MyBatis

選擇 Project name 和 Project location 如圖 1 - 5

Spring Boot 快速入門大綱Spring Boot 快速入門案例

選擇自動加載 maven 即 Enable Auto-Import 如圖 1 - 6

Spring Boot 快速入門大綱Spring Boot 快速入門案例

此時建立目錄如下 如圖 1 - 7

Spring Boot 快速入門大綱Spring Boot 快速入門案例

各目錄詳細解釋

.idea 目錄: idea 編譯器的配置目錄,儲存Idea的配置檔案

.mvn 目錄: 用于對 maven 的相關配置

src 目錄 儲存 項目源代碼

.gitignore 檔案 用于 git 檔案檔案上傳過濾檔案

HELP.md 幫助文檔

mvnw 檔案 Java 項目的腳本啟動檔案 linux 直接運作 mvnw 即可啟動,windows 運作 mvnw.cmd 檔案 即可啟動

pom.xml 檔案 用于進行 maven 的依賴

.imi 檔案 用于進行該項目的 idea 配置

連接配接資料庫

建立一張測試表,sql 語句如下 如 代碼 1 - 8

/*
 Navicat Premium Data Transfer


 Source Server         : t
 Source Server Type    : MySQL
 Source Server Version : 50718
 Source Host           : cdb-1yfd1mlm.cd.tencentcdb.com:10056
 Source Schema         : test


 Target Server Type    : MySQL
 Target Server Version : 50718
 File Encoding         : 65001


 Date: 25/08/2019 02:50:49
*/


SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;


-- ----------------------------
-- Table structure for test
-- ----------------------------
DROP TABLE IF EXISTS `test`;
CREATE TABLE `test`  (
  `id` int(11) NOT NULL,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;


SET FOREIGN_KEY_CHECKS = 1;
           

将 resources 目錄下的 application.properties 檔案名更改為 application.yml

Spring boot 配置相關資料源如下

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql:///test
    username: root
    password:            

編寫持久層

建立 POJO Test 類

package com.example.ming.POJO;

import lombok.Data;

@Data
public class Test {
    private String id;
    private String name;
}           

建立 Mapper 如代碼 1 - 10

package com.example.ming.mapper;

import com.example.ming.POJO.Test;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface TestMapper {

    @Select("SELECT * FROM  test")
    public List<Test> findAll() throws Exception;
}           

該 Mapper 需要添加 @Mapper 注解,表明是 Mybatis 的 mapper

啟動類添加掃描注解 如 代碼 1 - 11

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;

@SpringBootApplication
@MapperScan("com.example.ming.mapper")
public class MingApplication {

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

}           

編寫 service 層

package com.example.ming.controller;

import com.example.ming.POJO.Test;
import com.example.ming.mapper.TestMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@Service("TestService")
public class TestController {
    @Autowired
    private TestMapper testMapper;
    
    public List<Test> findAll()throws Exception{
        return testMapper.findAll();
    } 
}           

添加 Service 注解 表明該 Service 名稱為 TestService 其對象管理交由 Spring 容器進行處理。添加 Autowired 注解 , 表明 Spring 容器進行自動裝配 TestMapper 對象 。

編寫 Controller 層

package com.example.ming.controller;

import com.example.ming.POJO.Test;
import com.example.ming.service.TestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/Test")
public class TestController {
    @Autowired
    private TestService testService;

    @RequestMapping(value = "/findAll", method = RequestMethod.GET)
    public List<Test> findAll()throws Exception{
        return testService.findAll();
    }
}           

添加注解 RestController 表明是一個傳回 Json 資料格式的 Controller

添加注解 RequestMapper 表明此類是在 Test 連結下

類方法添加注解 RequestMapper 表明此類是在 Test 連結下的 findAll 連結, 接收的方法為 GET 方法。

運作應用

運作應用 main 方法

通路 連結

http://localhost:8080/Test/findAll

結果如圖

Spring Boot 快速入門大綱Spring Boot 快速入門案例

此時,若能顯示出 json 資料,表明整個應用已經啟動完成。