国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

慕課網_《Spring Boot 2.0深度實踐-初遇Spring Boot》學習總結

hqman / 3659人閱讀

時間:2018年04月08日星期日
說明:本文部分內容均來自慕課網。@慕課網:https://www.imooc.com
教學源碼:無
學習源碼:https://github.com/zccodere/s...

第一章:課程介紹 1-1 課程介紹

課程內容

Spring Boot介紹

環境準備

第一個Spring Boot項目

多模塊項目

打包和運行

1-2 框架定位

1-3 特性介紹

2.0 新特性

編程語言:Java 8及以上

底層框架:Spring Framework 5.0.0及以上

全新特性:Web Flux

為什么選擇Web Flux

函數編程:Java8 Lambda

響應編程:Reactive Streams

異步編程:Servlet 3.1或Asyn NIO

第二章:簡單項目 2-1 環境準備

開發環境

安裝JDK(https://java.oracle.com)

安裝Maven(https://maven.apache.org)

安裝IDEA(https://www.jetbrains.com/idea)

2-2 構建項目

簡單應用

編寫REST程序

運行Spring Boot應用

使用Http請求工具Postman

場景說明

定義用戶模型,包括屬性:用戶ID和名稱

客戶端發送POST請求,創建用戶(Web MVC)

客戶端發送GET請求,獲取所有用戶(Web Flux)

代碼編寫

1.創建名為boot-simple的maven工程pom如下



    4.0.0

    com.myimooc
    boot-simple
    0.0.1-SNAPSHOT
    jar

    boot-simple
    Demo project for Spring Boot

    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.1.RELEASE
         
    

    
        UTF-8
        UTF-8
        1.8
    

    
        
            org.springframework.boot
            spring-boot-starter-webflux
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    



2.完成后的項目結構如下

3.編寫BootSimpleApplication類

package com.myimooc.boot.simple;

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

/**
 * 
* 標題: 啟動類
* 描述: 簡單應用
* * @author zc * @date 2018/04/08 */ @SpringBootApplication public class BootSimpleApplication { public static void main(String[] args) { SpringApplication.run(BootSimpleApplication.class, args); } }

4.編寫User類

package com.myimooc.boot.simple.domain;

import java.io.Serializable;

/**
 * 
* 標題: 用戶模型
* 描述: POJO類
* * @author zc * @date 2018/04/08 */ public class User implements Serializable{ private static final long serialVersionUID = 7564986345486454458L; /** * 主鍵ID */ private Integer id; /** * 用戶名稱 */ private String name; @Override public String toString() { return "User{" + "id=" + id + ", name="" + name + """ + "}"; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }

5.編寫UserRepository類

package com.myimooc.boot.simple.repository;

import com.myimooc.boot.simple.domain.User;
import org.springframework.stereotype.Repository;

import java.util.Collection;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.atomic.AtomicInteger;

/**
 * 
* 標題: 用戶資源庫
* 描述: 領域驅動模型開發
* * @author zc * @date 2018/04/08 * {@link User} {@link Repository} */ @Repository public class UserRepository { /** * 采用內存型存儲方式 */ private final ConcurrentMap repository = new ConcurrentHashMap<>(16); private final static AtomicInteger ID_GENERATOR = new AtomicInteger(); /** * 保存用戶對象 * @param user {@link User} * @return 如果成功返回true,否則,返回false */ public boolean save(User user){ // ID 從 1 開始 Integer id = ID_GENERATOR.incrementAndGet(); user.setId(id); // put 方法返回 null 時表示保存成功 return repository.put(id,user) == null; } /** * 返回所有用戶列表 * @return 所有用戶列表 */ public Collection findAll(){ return repository.values(); } }

6.編寫UserController類

package com.myimooc.boot.simple.controller;

import com.myimooc.boot.simple.domain.User;
import com.myimooc.boot.simple.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 * 
* 標題: 用戶 REST 接口
* 描述: RESTFul 格式
* * @author zc * @date 2018/04/08 */ @RestController public class UserController { private final UserRepository userRepository; @Autowired public UserController(UserRepository userRepository){ this.userRepository = userRepository; } @PostMapping("/person/save") public User save(@RequestParam String name){ User user = new User(); user.setName(name); if (userRepository.save(user)){ System.out.printf("用戶對象: %s 保存成功 ",user); } return user; } }

7.編寫RouterFunctionConfiguration類

package com.myimooc.boot.simple.config;

import com.myimooc.boot.simple.domain.User;
import com.myimooc.boot.simple.repository.UserRepository;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.reactive.function.server.*;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

import java.util.Collection;

/**
 * 
* 標題: 路由器函數配置
* 描述: 配置映射
* * @author zc * @date 2018/04/08 */ @Configuration public class RouterFunctionConfiguration { /** * Servlet 規范 * 請求接口:ServletRequest 或者 HttpServletRequest * 響應接口:ServletResponse 或者 HttpServletResponse * * Spring 5.0 重新定義了服務請求的響應接口 * 請求接口:ServerRequest * 響應接口:ServerResponse * 即可支持 Servlet 規范,也可以支持自定義,比如 Netty (Web Server) * 以本例 * 定義 GET 請求,并且放回所有的用戶對象 URI:/person/find/all * Flux 是 0 - N 個對象集合 * Mono 是 0 - 1 個對象集合 * Reactive 中的 Flux 或者 Mono 是異步處理(非阻塞) * 集合對象基本上是同步處理(阻塞) * Flux 或者 Mono 都是 Publisher */ @Bean public RouterFunction personFindAll(UserRepository userRepository){ Collection users = userRepository.findAll(); return RouterFunctions.route(RequestPredicates.GET("/person/find/all"), request -> { Flux userFlux = Flux.fromIterable(users); return ServerResponse.ok().body(userFlux,User.class); }); } }
第三章:簡單使用 3-1 模塊拆分

多模塊重構

調整父模塊工程類型(packageing)

創建子模塊工程(module)

子模塊依賴管理(dependencyManagement)

完成后的結構如下

第四章:課程總結 4-1 課程總結

主要內容

Spring Boot 介紹

Spring Boot 項目

Spring Boot 模塊

Spring Boot 打包

Spring Boot 運行

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/68992.html

相關文章

  • 《Java編程方法論:響應式RxJava與代碼設計實戰》序

    摘要:原文鏈接編程方法論響應式與代碼設計實戰序,來自于微信公眾號次靈均閣正文內容在一月的架構和設計趨勢報告中,響應式編程和函數式仍舊編列在第一季度的早期采納者中。 原文鏈接:《Java編程方法論:響應式RxJava與代碼設計實戰》序,來自于微信公眾號:次靈均閣 正文內容 在《2019 一月的InfoQ 架構和設計趨勢報告》1中,響應式編程(Reactive Programming)和函數式...

    PAMPANG 評論0 收藏0
  • Dubbo Spring Cloud 重塑微服務治理

    摘要:在服務治理方面,相較于而言,并不成熟。遺憾的是,往往被部分開發者片面地視作服務治理的框架,而非微服務基礎設施。因此,建議開發人員將或者遷移為服務。因此,下一步需要將其配置服務遠程。當服務提供方啟動后,下一步實現一個服務消費方。 原文鏈接:Dubbo Spring Cloud 重塑微服務治理,來自于微信公眾號:次靈均閣 摘要 在 Java 微服務生態中,Spring Cloud1 成為...

    wh469012917 評論0 收藏0
  • 課網_Spring Boot 發送郵件》學習總結

    摘要:慕課網發送郵件學習總結時間年月日星期六說明本文部分內容均來自慕課網。 慕課網《Spring Boot 發送郵件》學習總結 時間:2018年09月08日星期六 說明:本文部分內容均來自慕課網。@慕課網:https://www.imooc.com 教學源碼:https://github.com/ityouknow/... 學習源碼:https://github.com/zccoder...

    Meathill 評論0 收藏0
  • 課網_《Java模板引擎之Freemarker》學習總結

    摘要:時間年月日星期日說明本文部分內容均來自慕課網。整體目錄結構如下項目文件用于數據持久化配置項目配置配置視圖解析器配置靜態資源映射配置配置配置自定義指令配置解析器配置,類似于項目啟動類新建,注冊配置類,并將其和當前關聯。 時間:2017年3月19日星期日說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com教學示例源碼:無個人學習源碼:https://githu...

    xumenger 評論0 收藏0
  • 課網_Spring Boot熱部署》學習總結

    時間:2017年12月01日星期五說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com 教學源碼:無 學習源碼:https://github.com/zccodere/s... 第一章:課程介紹 1-1 課程介紹 熱部署的使用場景 本地調式 線上發布 熱部署的使用優點 無論本地還是線上,都適用 無需重啟服務器:提高開發、調式效率、提升發布、運維效率、降低運維成本 前置...

    Channe 評論0 收藏0

發表評論

0條評論

hqman

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<