1. Spring boot

Spring Boot实际上就是为了简化配置所诞生的产物。省去了大量负载的配置,只需要配置一个application.yml就可以。还有一点就是“约定优于配置”的理念。Spring在这一点做的比较好,常见的比如数据库表明即实体名,列名即实体属性名。

(1) Spring boot核心

Spring boot的核心,就是三个注解

       SpringBootConfiguration:包含了Configuration注解,实现配置文件;

       EnableAutoConfiguration:加载spring.factories;

       ComponentScan:指定扫描范围;

(2)Spring boot启动的流程

① Spring boot启动的时候会去扫描starter包中的 resources/META-INF/spring.factories文件,根据文件中配置的jar包扫描依赖的jar包;

② 根据 spring.factories 配置加载 AutoConfigure 类;

③ 根据 @Conditional 注解的条件,进行自动配置并将 Bean 注入 Spring Context

2. Spring Cloud Alibaba

       Spring Cloud并非是一种框架,严格意义上来讲其更像是一种规范。常说的Spring Cloud更多的是指Spring Cloud Netflix,这是由于Spring Cloud官方给的注册中心eureka、负载均衡ribbon、熔断hystrix都是netflix开源的。Spring Cloud Netflix是Spring Cloud规范的一种实现。所以可以理解Spring Cloud Alibaba也是Spring Cloud规范的一种实现,其所使用的注册中心、负载均衡、熔断、远程调用等均采用不同的组件。

Spring Cloud Netflix

Spring Cloud Alibaba

注册中心

Eureka

Nacos

负载均衡

Ribbon

Dubbo LB

容错

Hystrix

Sentinel

服务调用

Feign

Dubbo RPC

分布式消息

RocketMQ

配置中心

Config

Nacos

3. ORM框架

总的来说,ORM框架常用的可以分为两种,面向关系(MyBatis)和面向对象(Hibernate)。Spring Data JPA属于Hibernate的阵营。两者的区别还是非常大的,Hibernate更加注重于开发人员注意力全部集中在逻辑代码层面,但是Mybatis甚至可以将业务逻辑融合到表设计中。数据库中表和实体类之间的耦合性关系比较大,也是约定大于配置的一种典型表现了。使用Hibernate对开发者的SQL要求不高,只需要可以操作POJO即可。但是MyBatis基本上是可以说是需要精通SQL了。这也导致了,获取同样的需要使用Hibernate更加的快捷,但是使用Mybatis或许后期更改起来更加的灵活。

Hibernate

Mybatis

数据库移植性



SQL

关注度低

关注度高

日志系统

功能齐全

基本

开发成本

略低

更高

SQL优化

不支持

优秀

4. Oracle、Mysql

5. 并发编程

6. 数据库水平分表

7. docker容器

8. 运营