面试题整理

什么是springboot
用来简化spring应用的初始化以及开发过程,使用特定的方式进行配置(properties或yml文件),创建独立的spring引用程序main方法运行,内嵌服务容器无需配置war文件,简化maven配置,自动配置spring添加对应功能的starter自动化配置。

springboot常用的starter有哪些
spring-boot-starter-web嵌入tomcat和web开发需要servlet与jsp支持。
spring-boot-starter-data-jpa数据库支持
spring-boot-starter-data-redis redis中间件支持
spring-boot-starter-data-solr solr搜索引擎支持
mybatis-spring-boot-stater 第三方的mybatis集成starter

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

springboot读取配置文件的方式
springboot默认读取配置文件为application.properties或者application.yml,其中读取有一定的优先级。

springboot集成mybatis的过程
1、添加mybatis的starter maven依赖
2、在mybatis的接口中添加@Mapper注解
3、在application.yml配置数据源信息

springboot如何添加【修改代码重启】自动重启功能
添加开发者工具spring-boot-devtools

什么是微服务
以前的模块是所有的代码在一个工程中的,部署子用一个服务器中,统一个项目不同模块不同功能相互抢占资源。
微服务:将工程根据不同的业务规则拆分成微服务,部署在不同的机器上,服务之间可以相互调用。java的微服务架构有debbo(只能用来做微服务,最近阿里有新的辅助功能),springCloud(提供了服务的发现,断路器等)

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

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

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

JPA和Hibernate有哪些区别
简而言之:
1、JPA是一个规范或者接口
2、Hibernate是JPA的一个实现
当我们使用JPA的时候,我们使用javax.persistence包中的注释和接口时,不需要使用hibernate的导入包。

什么是spring cloud
Spring Cloud为开发人员提供了快速构建分布式系统的一些通用模式(例如配置管理,服务发现,断路器,智能路由,微代理 ,控制总线,一次性令牌,全局锁,领导选举,分布式会话,群集状态)。分布式系统的协调导致了锅炉板模式,并且使用
Spring Cloud开发人员可以快速地站起来来实现这些模式的服务和应用程序。它们可以在任何分布式环境中正常工作,包括开发人员自己的笔记本电脑,裸机数据中心和受管平台,Cloud Foundry。

Zookeeper是什么框架
分布式的、开源的分布式应用程序协调服务,原本是Hadoop、Hbase的一个重要组件,它为分布式应用提供一致性服务的软件,包括:配置维护、域名服务、分布式同步、组服务等。
应用场景:
Zookeeper的功能很强大,应用场景很多,Zookeeper主要是做注册中心用。基于Dubbo框架开发的提供者、消费者都向Zookeeper注册自己的URL,消费者还能拿到并订阅提供者的注册URL,一边在后续程序的执行中去调用提供者。而提供者发生了变动,也会通过Zookeeper向订阅的消费者发送通知。
Zookeeper有哪几种节点类型:
持久:创建之后一直存在,除非有删除操作,创建节点的客户端会话失效也不影响此节点。
持久顺序:跟持久一样,就是父节点在创建下一级节点的时候,记录每个子节点创建的先后顺序。会给每个子节点加上一个数字后缀。
临时:创建客户端会话失效(注意是会话失效,而不是断了),节点也就没了,不能创建子节点。
临时顺序:。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值