第一章.LuBan面试题

本文分享了Java面试中关于微服务转型问题、OpenFeign的作用、Spring Boot常用注解、请求拦截、自定义注解、SpringMVC工作流程、Spring Cloud组件以及泛型理解的要点。适合复习和提升面试准备。
摘要由CSDN通过智能技术生成

Java面试题总结

第一章.LuBan面试题

裸辞以后一直摆烂,一直没有面试,最近几天觉得是时候改变一下了,把每次的面试都记录一下,以后也方便复习。这次面试的时候,没有刷任何面试题,知识点也忘的差不多了。所以面试的也不是很好。


LuBan面试题

面试问题:
1.传统项目改为微服务的时候会出现哪些问题
2.OpenFeign
3.springboot常用注解
4.微服务请求拦截
5.你有写过自定义注解么
6.springMVC的工作流程
7.springCloud常用的组件
8.泛型的理解

1.传统项目改为微服务的时候会出现哪些问题

1>数据问题,如果传统项目如果微服务化的话,数据很有可能会存在俩份或者多份,这个就需要优化
2>服务的拆分如何确定,传统项目复杂,如果拆的不合理就会失败,可以先把和核心功能不密切的像拆分,然后慢慢迭代。
如果第一次拆分成功,再慢慢的进行多次拆分

2.OpenFeign

1>fegin是springcloud组件中的一个轻量级的服务客户端,内置ribbon用来做负载均衡,去调用服务注册中心的服务。
2>openfegin则是在fegin的基础上支持的springMvc的注解。如@requestMapping等,
openfegin的@feginclient可以解析springmvc下的@requestmapping注解下的接口,并通过动态代理的方式产生实现类,实现类中做负载均衡
并调用其他的服务

3.springboot常用注解

1.在启动类上面的注解@SpringBootApplicaton,主要包含以下三个注解:
@SpringBootConfiguration 实现配置文件功能
@EnableAutoConfiguration 打开自动配置的功能,也可以关闭某个自动配置的选项
@ComponentScan Spring组件扫描

@RestController 是 @Controller 和 @ResponseBody 的 结 合 , 一 个 类 被 加 上
@RestController 注解,数据接口中就不再需要添加@ResponseBody,更加简洁。
@RequestMapping,我们都需要明确请求的路径.  @GetMappping,@PostMapping, @PutMapping, @DeleteMapping 结 合
@RequestMapping 使用, 是 Rest 风格的, 指定更明确的子路径.  @PathVariable:路径变量注解,用{}来定义 url 部分的变量名.  @Service 这个注解用来标记业务层的组件,我们会将业务逻辑处理的类都会加上这个
注解交给 spring 容器。事务的切面也会配置在这一层。当让 这个注解不是一定要用。
有个泛指组件的注解,当我们不能确定具体作用的时候 可以用泛指组件的注解托付给
spring 容器
@Component 和 spring 的注解功能一样, 注入到 IOC 容器中.  @ControllerAdvice 和 @ExceptionHandler 配合完成统一异常拦截处理

4.微服务请求拦截

使用getway对请求进行拦截,CrosConfig中,创建过滤器,编写过滤规则
然后,在编写判断逻辑,还有就是在yml文件中,路径匹配进行添加

5.你有写过自定义注解么

这个还没有看等学习了之后再修改吧

6.springMVC的工作流程

在这里插入图片描述
链接: link

7.springCloud常用的组件

1.注册中心:众多的服务,那就需要注册中心,服务先注册到这里边去,然后需要使用的话,在从这里边调用
2.负载均衡:既然有服务那服务我可能注册多个,第二个组件就是fegin,他是做负载均衡,主要作用就是从注册中心拿一堆的服务列表,这个时候就需要按照一定的策略进行调用,轮训 权重 hash值 响应时间短的优先分配
3.hystrix:主要就是熔断,降级,限流
4.配置中心:众多的服务当中,可能又一些配置,这些配置如果分散到不同的微服务中,管理是不好管理的,所以需要统一的配置中心,也就是springcloudconfigure
5.网关:在n多个微服务中,他最终是要暴露给前端调用得,而前端如果一个服务就一个地址的话,他是非常不好管理的,这个时候就可以让他统一地址,第二个就是对微服务进行鉴权等等的操作,这些操作都交给微服务的网关去处理

8.泛型的理解

1.当录入成绩时,语文老师成绩录入是 优良差,数学老师录入成绩是98 61,英语老师则是录入ABC,这是,成绩的类型是三个不同类型,这时,
就可以使用泛型,泛型,会根据你录入的类型来进行转换存储。
2.T、E、K、V、?的区别
T是具体的java类型
?是未知的java类型
K,V也就是Key,Value
E是元素
3.在使用这种参数化的类与接口时,
(1)实际类型参数必须是引用数据类型(包装类),不能是基本数据类型
(2)在创建类的对象时指定类型变量对应的实际类型参数,不能是object

总结

这个只是我自己的一些总结,可能又不对的或者不完整的,希望可以提出来,帮助我修改,进步

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值