springboot和springcloud功能详细介绍
一. 什么是springboot
1.用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件)
2.创建独立的spring引用程序 main方法运行
3.嵌入的Tomcat 无需部署war文件
4.简化maven配置
5.自动配置spring添加对应功能starter自动化配置
二.springboot常用的starter有哪些
可以去Maven仓库中搜索以下插件,pom文件依赖即可
Maven仓库官网:http://mvnrepository.com/
1.spring-boot-starter-web (嵌入tomcat和web开发需要servlet与jsp支持)
2.spring-boot-starter-data-jpa (数据库支持)
3.spring-boot-starter-data-redis (redis数据库支持)
4.spring-boot-starter-data-solr (solr搜索应用框架支持)
5.mybatis-spring-boot-starter (第三方的mybatis集成starter)
三. springboot自动配置的原理
1.@EnableAutoConfiguration这个注释告诉SpringBoot“猜”你将如何想配置Spring,基于你已经添加jar依赖项。如果spring-boot-starter-web已经添加Tomcat和Spring MVC,这个注释自动将假设您正在开发一个web应用程序并添加相应的spring设置。会自动去maven中读取每个starter中的spring.factories文件 该文件里配置了所有需要被创建spring容器中的bean
2.使用@SpringbootApplication注解 可以解决根类或者配置类(我自己的说法,就是main所在类)头上注解过多的问题,一个@SpringbootApplication相当于@Configuration,@EnableAutoConfiguration和 @ComponentScan 并具有他们的默认属性值
四.springboot读取配置文件的方式
springboot默认读取配置文件为application.properties或者是application.yml
springboot集成mybatis的过程
添加mybatis的starter maven依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
在mybatis的接口中 添加@Mapper注解
在application.yml配置数据源信息
五. springboot如何添加【修改代码】自动重启功能
添加spring-boot-devtools的maven依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional>
</dependency>
同时在配置文件中添加如下:
##开启开发者模式重启功能
spring.devtools.restart.enabled=true
##指定修改文件目录
spring.devtools.restart.additional-paths=src/main/java
六.微服务
以前的模式是 所有的代码在同一个工程中 部署在同一个服务器中 同一个项目的不同模块不同功能互相抢占资源
微服务 将工程根据不同的业务规则拆分成微服务 微服务部署在不同的机器上 服务之间进行相互调用
Java微服务的框架有 dubbo(只能用来做微服务),spring cloud(提供了服务的发现,断路器等)
七. springcloud如何实现服务的注册和发现
服务在发布时 指定对应的服务名(服务名包括了IP地址和端口) 将服务注册到注册中心(eureka或者zookeeper)
这一过程是springcloud自动实现 只需要在main方法添加@EnableDisscoveryClient 同一个服务修改端口就可以启动多个实例
调用方法:传递服务名称通过注册中心获取所有的可用实例 通过负载均衡策略调用(ribbon和feign)对应的服务
springcloud服务需要添加依赖
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Dalston.SR4</version><type>pom</type><scope>import</scope>
</dependency>
springcloud注册需要添加依赖
<!-- 引入eureka 客户端依赖 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency>
八.ribbon和feign区别
Ribbon添加maven依赖
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
使用@RibbonClient(value=“服务名称”)
使用RestTemplate调用远程服务对应的方法
feign添加maven依赖
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
服务提供方提供对外接口 调用方使用 在接口上使用@FeignClient(“指定服务名”)
Ribbon和Feign的区别:
Ribbon和Feign都是用于调用其他服务的,不过方式不同。
1.启动类使用的注解不同,Ribbon用的是@RibbonClient,Feign用的是@EnableFeignClients。
2.服务的指定位置不同,Ribbon是在@RibbonClient注解上声明,Feign则是在定义抽象方法的接口中使用@FeignClient声明。
3.调用方式不同,Ribbon需要自己构建http请求,模拟http请求然后使用RestTemplate发送给其他服务,步骤相当繁琐。
Feign则是在Ribbon的基础上进行了一次改进,采用接口的方式,将需要调用的其他服务的方法定义成抽象方法即可,
不需要自己构建http请求。不过要注意的是抽象方法的注解、方法签名要和提供服务的方法完全一致。
九.springcloud断路器的作用
当一个服务调用另一个服务由于网络原因或者自身原因出现问题时 调用者就会等待被调用
者的响应 当更多的服务请求到这些资源时
导致更多的请求等待 这样就会发生连锁效应(雪崩效应) 断路器就是解决这一问题断路器
有完全打开状态
一定时间内 达到一定的次数无法调用 并且多次检测没有恢复的迹象 断路器完全打开,那
么下次请求就不会请求到该服务半开,短时间内 有恢复迹象 断路器会将部分请求发给该服务 当
能正常调用时 断路器关闭,当服务一直处于正常状态 能正常调用 断路器关闭
最后,给大家提供一个springcloud开发文档地址:https://github.com/alibaba/spring-cloud-alibaba/wiki/
springboot和springcloud功能详细介绍相关推荐
- Xilinx FPGA 引脚功能详细介绍
Xilinx FPGA 引脚功能详细介绍 注:技术交流用,希望对大家有所帮助. IO_LXXY_# 用户IO引脚 XX代表某个Bank内唯一的一对引脚,Y=[P|N]代表对上升沿还是下降沿敏感,#代表 ...
- lgg7深度详细参数_石材雕刻机加工程序菜单栏目按钮相关功能详细介绍
石材雕刻机软件的加工程序菜单栏目功能非常多.想要了解每一个按钮的对应功能可能要花上一段时间,看到这篇文章的读者有福啦,因为酬信雕刻机小编已经为大家详细的整理了菜单栏目按钮相关功能详细介绍. 酬信石材雕 ...
- csp怎么给线条描边_CSP优动漫PAINT中基本功能详细介绍
今天我们来看一下CSP优动漫PAINT中基本功能详细介绍,有不清楚的小伙伴,一起来了解一下吧. CSP优动漫PAINT中基本功能详细介绍 颜色丰富多彩.笔感自然真实 通过高级笔压感应功能,展现自然真实 ...
- 代驾微信小程序现成开发,代驾司机用户端功能详细介绍
代驾微信小程序现成开发制作解决方案: 微信代驾小程序开发制作功能详细介绍: (一)管理后台功能 概述:总交易额.总交易数.昨日交易额.昨日交易数.昨日司机申请数量.营业额统计看板aigao0607 基 ...
- FANUC机器人UOP信号(UI+UO)功能详细介绍
FANUC机器人UOP信号功能详细介绍 UOP信号 UI信号 UO信号 一. UI信号 常用于控制程序启动.暂停等,共18个 UI[1] IMSTP紧急停机信号(软件) (正常状态下为ON) ...
- 超级表格编辑功能详细介绍
超级表格编辑功能详细介绍 今天我们来详细的介绍一下超级表格的编辑功能. 超级表格如何进行复制,黏贴? 部分品牌的电脑有单独的复制快捷键,请您以实际为准: 1. 在超级表格中,如果您想复制一个单元格中的 ...
- 浏览器F12功能详细介绍
浏览器F12功能详细介绍 转载链接:https://www.pianshen.com/article/15161573557/
- SpringBoot 缓存之 @Cacheable 详细介绍
一.简介 1.缓存介绍 Spring 从 3.1 开始就引入了对 Cache 的支持.定义了 org.springframework.cache.Cache 和 org.springframework ...
- Ubuntu根目录下各文件夹的功能详细介绍
Ubuntu的根目录下存在着很多的文件夹,但你知道他们都存放着哪些文件呢?这些是深入了解Ubuntu系统必不缺少的知识,本文就关于此做一下介绍吧. /bin/ 用以存储二进制可执行命令文件. / ...
最新文章
- Oracle的共享封闭 独占封闭和共享更新封闭 (1)
- kettle获取当前日期_kettle中通过 时间戳(timestamp)方式 来实现数据库的增量同步操作(一)...
- SAP APF KPI tile上的数字无法重复显示的原因
- [转]jQuery设计思想
- leetcode 621. 任务调度器(贪心算法)
- linux win10 时间同步服务器,windows和linux下服务器时间如何校正?
- c++builder tadoquery存储过程_Electron桌面应用程序从创建项目、启动项目到打包程序的详细过程...
- 作者:金海,博士,华中科技大学计算机科学与技术学院教授、博士生导师。...
- Magento 移除标签 How to remove “Tags” block from a product page
- Nand Flash数据存储单元的整体架构
- CString Format 乱码问题
- Android 工具:TraceView
- kylin安装以及遇见到的一些问题和解决方法
- 三种等待方式:强制等待、显式等待、隐式等待
- 利用计算机制作多媒体作品目标,多媒体创作工具功能有什么特点
- (邻接表/邻接矩阵)图的实现
- 微信开发者工具调试大法
- 支付宝公众服务接口和微信公众平台接口的区别
- 网络钓鱼攻击类型,载体及其技术途径
- verilog i2c 通用控制模块
热门文章
- 假冒上市被揭发,这家公司有何来头?
- CodeForces - 1139C Edgy Trees (快速幂+dfs)
- 客户端与服务器之间的通信过程
- PLC 200 Smart模拟量输入输出编程应用
- maya中redshift渲染深度景深后nuke合成方法
- 解决Pycharm 多线程时出现错误Process finished with exit code -1073741819 (0xC0000005)
- RoboCup GameController安装方法
- 24点游戏的递归解法和Python实现
- 【云宏大讲坛】关键应用在超融合环境下的实践
- 阿里云centOS安装图形界面