spring boot + Springcloud 面试题

花生 可爱的博主

时间: 2021-04-21 阅读: 154 字数:2637

{}
面试啊

1. 什么是springboot?

  1. 用来简化spring应用的初始搭建已开发过程使用特定的方式来配置(propertiesyml文件)
  2. 创建独立的spring引用程序main方法运行

2. Springboot常用的starter有哪些?

  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

3.springboot自动配置的原理

  1. 在spring程序中main方法添加@SpringBootApplication@EnableAutoConfiguration会自动去maven中读取每一个starter中的spring.factories文件,该文件中配置了所有需要被创建spring容器中的bean

4.springboot读取配置文件的方式

  1. springboot默认读取配置文件为application.properties或者是application.yml

5.springboot集成mybatis的过程

  1. 添加mybatis的starter maven依赖
    <dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.2.0</version>
    </dependency>
    
  2. 在mybatis的接口中 添加@Mapper注解 在application.yml配置数据源信息

6.springboot如何添加【修改代码】自动重启功能

  1. 添加开发者工具集=====spring-boot-devtools

-----------------------------------------

Spring Cloud

1.springcloud如何实现服务的注册和发现

  1. 服务在发布时 指定对应的服务名(服务名包括了IP地址和端口) 将服务注册到注册中心(eureka或者zookeeper) 这一过程是springcloud自动实现 只需要在main方法添加@EnableDisscoveryClient 同一个服务修改端口就可以启动多个实例
  2. 调用方法:传递服务名称通过注册中心获取所有的可用实例 通过负载均衡策略调用(ribbon和feign)对应的服务

2.ribbon和feign区别

  1. 启动类使用的注解不同,Ribbon用的是@RibbonClient,Feign用的是@EnableFeignClients
  2. 服务的指定位置不同,Ribbon是在@RibbonClient注解上声明,Feign则是在定义抽象方法的接口中使用@FeignClient声明。
  3. 调用方式不同:Ribbon需要自己构建http请求,模拟http请求然后使用RestTemplate发送给其他服务,步骤相当繁琐。Feign则是在Ribbon的基础上进行了一次改进,采用接口的方式,将需要调用的其他服务的方法定义成抽象方法即可, 不需要自己构建http请求。不过要注意的是抽象方法的注解、方法签名要和提供服务的方法完全一致。

3. springcloud断路器的作用

  1. 当一个服务调用另一个服务由于网络原因或者自身原因出现问题时 调用者就会等待被调用者的响应 当更多的服务请求到这些资源时导致更多的请求等待,这样就会发生连锁效应(雪崩效应),断路器就是解决这一问题。
  2. 断路器有完全打开状态: 一定时间内 达到一定的次数无法调用 并且多次检测没有恢复的迹象 断路器完全打开,那么下次请求就不会请求到该服务 半开:短时间内 有恢复迹象 断路器会将部分请求发给该服务 当能正常调用时 断路器关闭 关闭:当服务一直处于正常状态 能正常调用 断路器关闭。
本文章网址:https://www.sjxi.cn/detil/c37ef17ff2334cfba86005f2dad79d1b

最新评论

当前未登陆哦
登陆后才可评论哦

湘ICP备2021009447号

×

(穷逼博主)在线接单

QQ: 1164453243

邮箱: abcdsjx@126.com

前端项目代做
前后端分离
Python 爬虫脚本
Java 后台开发
各种脚本编写
服务器搭建
个人博客搭建
Web 应用开发
Chrome 插件编写
Bug 修复