Bootstrap

微服务专题16-Spring Cloud 整体回顾

前言

前面的章节我们讲了Spring Cloud Stream 实现

本节,是微服务专题的最后一节,我们来对这个专题做一个总结!共计16小节,分别是:

本节内容重点为:

  • java基础回顾
  • springboot特性回顾
  • springcloud特性回顾

写在前面

  1. 任何结论,需要程序检验(稳定重现)
  2. 经常写代码、多看、多思考
  3. 训练思维模式(抽象思维、辩证思维、逆向思维、发散思维)
  4. 原始积累(JDK、框架:Spring、Tomcat、Log4j 等等)
  5. 少对同伴代码指点,方案上可以讨论(Code Review 思维是否严谨)
  6. 乐于分享(演讲、技术沙龙、讨论会议等)
  7. 如何选择性看书(仅供参考)

这里推荐一下书籍:
链接:https://pan.baidu.com/s/1A_QLYev4bQFCtojtmgr-7A
提取码:pcxy
复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V4的分享

Java 基础

工具

工欲善其事必先利其器,我们先看看java的基础工具有哪些?

1、 Java 编译器

javax.tools.JavaCompiler

2、Jar = Zip

Spring Boot Fat Jar 压缩率 = 0

3、 Java Debug

JDB

ClassLoader

ClassLoader:java类加载器,作为java核心概念之一,非常重要!

  • Class

  • ClassLoader

    • Class
    • 资源管理
    • 并行加载 Class 1.7
    • 并发(Thread)
    • META Space

Beans

java可以说就是面向对象编程的语言,而这就主要是围绕bean而展开的!

  • 内省(Introspector): Java Bean 规范 + 反射(Reflection) + 引用(Reference)
    • BeanInfo
    • PropertyDescriptor

Spring 例子:PropertyEditorRegistrar 注册 PropertyEditor

PropertyEditor 字符文本装换位需要的类型

<bean class="User">
    <property name="id" value="9" /> <!-- String to Long -->
    <property name="age" value="32" /> <!-- String to Integer -->
</bean>

Java 编程模型演变

1、面向对象编程(OOP)

  • 封装性
  • 派生性
  • 多态性
设计模式
  • GoF 23
  • Reactor/Proactor

2、Java 1.2 反射编程

3、Java 1.3 AOP

4、Java 1.4 NIO(Non-Blocking)

5、Java 1.5 泛型/并发编程

6、Java 1.6 脚本编程(JavaScript)

7、Java 1.7 NIO 2

8、Java 1.8 Lambda 编程

9、Java 9 模块化/Reactive 编程

Spring Framework 简史

核心特性

1、 IoC/DI

基于 Java 反射、Java Beans 内省

2、 AOP

  • 接口类型基于 Java AOP Proxy
  • 类类型基于 CgLib 提升实现

3、 资源管理

  • ClassLoader
  • URL
  • I/O

4、 事件

  • Java 标准事件/监听机制
    • java.util.EventObject
    • java.util.EventListener
  • Java 观察者模式
    • java.util.Observer
    • java.util.Observable

5、 国际化

  • java.util.ResourceBundle
    • java.util.PropertyResourceBundle
  • java.text.MessageFormat

6、 验证

  • Validator
  • Bean Validation(JSR-303)
    • LocalValidatorFactoryBean
      • javax.validation.ValidatorFactory
      • org.springframework.validation.SmartValidator

7、 数据绑定

  • DataBinder

8、 类型转换

  • java.beans.PropertyEditor
  • Convertor
  • ConversionService

9、 Spring EL

  • JSP EL

  • OGNL

数据访问

1、 事务

  • JDBC Transaction
  • JTA(Java Transaction API)
  • JTS(Java Transaction Service)

2、 JDBC

  • JDBC -> JdbcTemplate

3、 ORM

  • Hibernate
  • iBatis

4、 XML

  • SAX(Simple API for XML)
  • XML Stream
  • JAXB(Java API for XML Binding)
  • DOM(Document Object Model)

Web Servlet

Spring MVC
  • 早期借鉴 Struts
  • 中后期借鉴 JAX-RS(REST Java 规范)

Web Reactive

Spring WebFlux
  • Reactor
    • RxJava
  • Netty

Spring Framework 一种编程模型

XML 配置多 -> 注解配置多

Spring Boot 特性

  • 自动装配:实现规约大于配置(减少配置)
  • Production-Ready:完善或简化 Spring 应用的运维体系
    • 外部化配置:通过外部配置调整应用内部行为
  • 嵌入式容器:装配嵌入式 Web 容器
    • Servlet 容器
    • Netty Web 容器

Spring Cloud 特性

  • 服务发现
  • 远程调用
    • 客户端申明(Feign)
    • 服务熔断(Hystrix)
    • 负载均衡(Ribbon)
    • 服务调用链路跟踪(Sleuth)
  • 分布式配置
    • 版本系统(Git)
    • 分布式实现(自定义实现)
  • 异步消息
    • 消息总线(Spring Cloud Bus)
    • 消息整合(Spring Cloud Stream)
  • 网关
    • Spring Cloud 1.x / 2.x Zuul
    • Spring Cloud Gateway

更多

分布式事务

最终一致性
  • 基于消息的最终一致性

安全

后记

微服务专题到这就告一段落了,下一专题预告:并发编程专题

更多架构知识,欢迎关注本套Java系列文章Java架构师成长之路

;