可以通过http://start.spring.io/构建一个SpringBoot的脚手架项目

一、微服务

1、SpringBoot是一个可使用Java构建微服务的微框架。

2、微服务就是要倡导大家尽量将功能进行拆分,将服务粒度做小,使之可以独立承担对外服务的职责,沿着这个思路开发和交付的软件服务实体就叫做“微服务”。

3、微服务的好处

(1)独立,独立,还是独立。每一个微服务都是一个小王国,跳出了“大一统”(Monolith)王国的统治,开始从各个层面打造自己的独立能力,从而保障自己的小王国可以持续稳固的运转。

(2)多语言生态。微服务独立之后,给了对应的团队和组织快速迭代和交付的能力,同时,也给团队和组织带来了更多的灵活性,实际上,对应交付不同的微服务的团队或者组织来说,现在可以基于不同的计算机语言生态构建这些微服务。

二、Spring框架本质

1、Spring IoC(Inversion of Control)其实有两种形式,一种就是DI(Dependency Injection依赖反转),另一种是DL(Dependency Lookup依赖查找)。DI是当前软件实体被动接受其依赖的组件被IoC容器注入,DL是当前软件实体主动去某个服务注册地查找其依赖的那些服务。

Spring IoC容器的依赖注入工作可以分为两个阶段:

(1)收集和注册:构建和收集bean定义的阶段,这样IoC容器中充斥着一个个独立的bean,它们之间没有任何关系。

(2)分析和组装:分析这些已经在IoC容器之中的bean,然后根据它们之间的依赖关系先后组装它们。如果IoC容器发现某个bean依赖另一个bean,它就会将这另一个bean注入给依赖它的那个bean,直到所有bean的依赖都注入完成,所有bean都”整装待发“,整个IoC容器的工作即算完成。

2、 JavaConfig

Spring框架推出并持续完善了基于Java代码和Annotation元信息的依赖关系绑定描述方式,即JavaConfig项目。

基于JavaConfig方式的依赖关系绑定描述基本上映射了最早的基于XML的配置方式:

任何一个标注了@Configuration的Java类定义都是一个JavaConfig配置类。

任何一个标注了@Bean的方法,其返回值将作为一个bean定义注册到Spring的IoC容器,方法名将默认成为该bean定义的id。

如果一个bean的定义依赖其他bean,则直接调用对应JavaConfig类中依赖bean的创建方法就可以了。

那些高曝光率的Annotation:

@ComponentScan、@PropertySource与@PropertySources、@Import与@ImportSource

三、SpringBoot的工作机制

1、@SpringBootApplication

对于SpringBoot应用来说,重要的只有三个Annotation,而“三体”结构实际上指的就是这个三个Annotation:@Configuration、@EnableAutoConfiguration、@ComponentScan

2、SpringApplication:SpringBoot程序启动的一站式解决方案

3、SpringBoot应用启动步骤简要示意图

四、了解纷杂的spring-boot-starter

1、SpringBoot微框架从两个主要层面影响Spring社区的开发者们:

(1)基于Spring框架的“约定优先于配置(COC)"理念以及最佳实践之路;

(2)提供了针对日常企业应用研发各种场景的spring-boot-starter自动配置依赖模块,如此多“开箱即用”的依赖模块,使得开发各种场景的Spring应用更加快速和高效。

2、spring-boot-starter-aop

Java平台上的AOP(Aspect Oriented Programming)方案基本上已经以SpringAOP结合AspectJ的方式稳固下来。

3、spring-boot-starter-actuator

spring-boot-starter-actuator自动配置模块用于支持SpringBoot应用的监控。

五、SpringBoot微服务实践探索

1、使用SpringBoot构建微服务

(1)创建基于Dubbo框架的SpringBoot微服务

Dubbo:一款基于TCP长连接通信(Netty)的高性能服务治理框架。

将Dubbo微服务以SpringBoot形式标准化了,如此一来,我们既可以享受SpringBoot框架和周边的一系列研发支持,也可以用统一的形式发布、部署和运维。

微服务的一个特点就是数量多。

(2)使用SpringBoot快速构建Web API

2、SpringBoot微服务的发布与部署

  基于Docker的发布与部署方式:

3、SpringBoot微服务的注册与发现

4、SpringBoot微服务的监控与运维

  从局部性触发式报警到系统性智能化报警

  实际上,一种有效的报警体系应该是能够系统化地综合考虑所有监控层级的数据,然后汇总和分析,最终发出一个行之有效的报警,称为系统性智能化报警。

5、SpringBoot微服务的安全与防护

深度防御(Defence In Depth)

访问的认证和授权的过程(Authentication And Authorization)

6、SpringBoot微服务体系的脊梁:发布与部署平台

SpringBoot 快速构建微服务体系 知识点总结的更多相关文章

  1. Springboot揭秘-快速构建微服务体系-王福强-2016年5月第一次印刷

    JavaConfig项目: spring IOC有一个非常核心的概念——Bean.由Spring容器来负责对Bean的实例化,装配和管理.XML是用来描述Bean最为流行的配置方式.Spring可以从 ...

  2. SpringBoot揭秘:快速构建微服务体系

    chapter 2: 饮水思源:回顾与探索Spring框架本质 IoC其实有两种方式,一种是DI(dependency Injection),一种是DL(dependency Lookup 依赖查找, ...

  3. 《SpringBoot揭秘 快速构建微服务体系》读后感(一)

    SpringIOC IOC有两种方式:一种是DI,另一种是DL,即Dependency Lookup(依赖查找).前者是当前软件实体被动接受其依赖的其他组件被IoC容器注入,而后者则是当前软件实体主动 ...

  4. 《SpringBoot揭秘 快速构建微服务体系》读后感(五)

    应用日志和spring-boot-starter-logging 快速web应用开发与spring-boot-starter-web 1.项目结构层面的约定

  5. 《SpringBoot揭秘 快速构建微服务体系》读后感(三)

    SpringApplication:SpringBoot程序启动的一站式解决方案 深入探索SpringApplication执行流程 因为书上的版本是1.2的,比较老,这里参考http://blog. ...

  6. 《SpringBoot揭秘 快速构建微服务体系》读后感(二)

    最简单的springBoot应用 package com.louis.test; import org.springframework.boot.SpringApplication; import o ...

  7. 《SpringBoot揭秘 快速构建微服务体系》读后感(四)

    再谈自动配置 基于条件的自动配置 调整自动配置的顺序

  8. [高清] SpringBoot揭秘快速构建微服务体系

    ------ 郑重声明 --------- 资源来自网络,纯粹共享交流, 如果喜欢,请您务必支持正版!! --------------------------------------------- 下 ...

  9. 通过GeneXus如何快速构建微服务架构

    概览 “微服务”是一个非常广泛的话题,在过去几年里,市面上存在着各种不同的定义. 虽然对这种架构方式没有一个非常精确的定义,但仍然有一些概念具有代表性. 微服务有着许多围绕业务能力.自动化部署.终端智 ...

随机推荐

  1. tp框架 MVC模式

    一.定义 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方 ...

  2. linux点滴记录

    以下均为在Ubuntu下实践操作 更改DNS //编辑文件 - “/etc/resolv.conf”,打开“终端应用程序”-“附件” - “终端”,在终端里输入下面的命令: sudo nano /et ...

  3. mybatis 注解开发CRUD

    mybatis 的常用注解说明 @Insert:实现新增 @Update:实现更新 @Delete:实现删除 @Select:实现查询 @Result:实现结果集封装 @Results:可以与@Res ...

  4. 第二章、Python基础

    @编程语言分类: a.从运行角度分: 编译型:代码本身不能运行,需要一个附加程序(编译器〉将其转换成由二进制代码组成的可执行文件,然后才可以运行. 如 c/c++ 特点: 开发效率低.执行速度快 解释 ...

  5. hdu 6298 Maximum Multiple(规律)

    hdu6298 Maximum Multiple 题目传送门 题意: 给你一个整数n,从中找出可以被n整除的三个数x,y,z: 要求x+y+z=n,且x*y*z最大. 思路: 开始一看T到1e6,n也 ...

  6. 【JMeter4.0】一、JAVA环境-JDK1.10安装与配置

    环境变量的作用: 它是操作系统用来指定运行环境的一些参数.比如临时文件夹位置和系统文件夹位置等.当你运行某些程序时,除了在当前文件夹中寻找外,还会到这些环境变量中去查找,比如“Path”就是一个变量, ...

  7. 浅谈XML涉及到的常见技术(编写+解析)

    xml:即可扩展标记语言,用于描述关系型数据,也经常用作软件的配置文件:     1,编写xml文档一般基于一个约束文档,该文档用于规定xml的书写规范,常用的约束技术有        (1)XML ...

  8. 前端对base64编码的理解,原生js实现字符base64编码

    目录 常见对base64的认知(不完全正确) 多问一个为什么,base64到底是个啥? 按照我们的思路实现一下 到这里基本就实现了,结果跟原生的方法打印的是一样的 下一次 @( 对于前端工程师来说ba ...

  9. ROLLBACK - 退出当前事务

    SYNOPSIS ROLLBACK [ WORK | TRANSACTION ] DESCRIPTION 描述 ROLLBACK 回卷当前事务并取消当前事务中的所有更新. PARAMETERS 参数 ...

  10. 12-低延迟、全接口(HMDI、DVI、YPb Pr、RGB)H.264全高清编码器解码器

    低延迟.全接口(HMDI.DVI.YPb Pr.RGB)H.264全高清编码器解码器 一.产品介绍  1.近零延时的H.264压缩到1920x1080p60  该产品提供分辨率为1920x1080p6 ...