前言(第一性原理)
- 那么spring解决问题:JAVA开发框架,spring是用来解决企业级Java应用开发的问题。
通过依赖注入和面向切面编程来灵活管理和配置代码,提供一套工具来帮助开发和配置代码,提供了声明式事务管理,简化事务处理。
- springboot的作用是:java开发框架,简化spring开发的创建配置和部署。
解决spring开发中遇到的一些麻烦问题,帮助spring进行快速,高校,有框架模式的开发。
- springcloud的作用是:在springboot框架的基础上,提供一系列开发工具简化开发和管理
springcloud介绍
多个服务之间的协调
1.1通过nacos来进行服务发现
1.2通过openfeign来进行服务调用(在openfeign中使用ribbon协议调用)
1.3通过ribbon进行负载均衡
1.4通过sentinel进行限流和熔断
客户端和服务端之间的协调
2.1通过api gateway进行访问路由。
2.2通过nacos进行服务发现
2.3通过在api gateway中设置ribbon进行负载,已可以通过nginx进行负载
2.4通过在api gateway中设置sentinel进行限流和熔断
2.5通过spring security进行安全设置
未完
springboot介绍
应用:前端+后端
后端:API层,service层,data access层,数据库层(从后往前理解)
数据库层
DataAccess层
1.JPA接口@repository
用@repository来标识配置接口,这里的接口的作用是抽象各种方法?
2.表对象@entiry
- 用@entiry来标识配置数据库表对象
这里的作用是通过表对象直接关联数据库中的数据,通过@table(name="student"),@id @column等这些标识来进行配置映射关系
- 创建相关数据库的方法
service层@service
接口
实现
业务实现层,通过@service @autowired(注入reposity) @override @getmapping("student/{id}"}用大括号来传递变量 @pathvariable 指示path中的变量
API层@restcontroller
通过http restful方式提供访问网址(endpoint)
在springboot中叫controller,@restcontroller标识来api类配置,
@getmapping("/endpoint")来标识具体网址,在restful 架构中,每个网址代表一种资源,所以网址中不能有动词,都是名称
http动词:
get(select)从服务器查询一个资源
post(create)在服务器新建一个资源
put(update)在服务器更新资源(客户端提供改变后的完整资源)
patch(update)在服务器更新资源(客户端提供改变的属性)
delete(delete)从服务器删除一个资源
总结
entity层数据库实体层:类,是把表结构写出来和一些标准的(set和get)方法
reposity数据库访问层:接口,是把数据库访问层写出来,一些标准的方法。
service业务处理层:类,是把业务处理数据层写出来,这可以拆分为接口和类,方便做不同的实现和方法管理。一般已会把通用的业务在这里定义(比如定义访问成功或失败的泛型数据类型的访问类,在这类里面用泛型数据类型匹配所有数据)
control前端访问层:类,是把访问接口写出来,通过定义网址来定义接口,在这里可以引入service层的接口或者实现类都可以。