[Spring] spring bean的加载流程?



[Spring] BeanFactory与ApplicationText的关系和区别?



[Spring] SpringMVC执行流程?


[Spring] SpringIOC是怎么实现的?


[Spring] Spring事物传播特性?


[Spring] springmvc常用注解



[Spring] SpringBean的作用域?



[Spring] aop是如何实现的,底层用到了哪些技术。动态代理有哪几种方式?他们区别是什么?

aop底层采用反射和动态代理机制。动态代理分为两种。
两者区别:jdk动态代理基于接口,cglib基于类即可。
如果类实现了接口,则使用jdk代理。如果没有实现接口,则使用CGlib代理。


[SpringBoot] @RestController和@Controller的区别?

@RestController注解相当于@ResponseBody + @Controller合在一起的作用。
使用@Controller 注解,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面

若返回json等内容到页面,则需要加@ResponseBody注解


[SpringBoot] 使用了哪些SpringBoot的特性?

1.独立运行spring项目,springboot可以以jar包形式独立运行。
2.内嵌servlet容器,使得我们可以执行项目的主函数快速运行项目。
3.提供starter来简化maven的配置。常用的starter有web,tomcat,actuator。
4.自动配置spring。springboot会根据我们项目中的类路径的jar包,为jar包类进行自动的装配bean。如果类中使用@SpringbootApplication或者EnableAutoConfiguration。在启动是springboot服务时,对象实例化时会加载class/META-INF/spring.factories文件,将该配置文件中的配置载入到Spring容器中。
5.应用监控。
springboot提供了actuator组件,只需要在配置中加入spring-boot-starter-actuator依赖,通过继承AbstractHealthIndicator这个抽象类,然后在doHealthCheck()方法中检测服务健康的方法,就可以实现一个简单的监控。


[微服务] SpringCloud 使用了哪些Cloud组件?

EureKe 服务治理组件 可以注册服务接口中心

Hystrix 容错管理组件,实现断路器模式,帮助服务依赖中出现的延迟和故障提供容错机制

Ribbon

Ribbon 是一个基于 HTTP 和 TCP 客户端的负载均衡器

它可以在客户端配置 ribbonServerList(服务端列表),然后轮询请求以实现均衡负载

它在联合 Eureka 使用时

ribbonServerList 会被 DiscoveryEnabledNIWSServerList 重写,扩展成从 Eureka 注册中心获取服务端列表

同时它也会用 NIWSDiscoveryPing 来取代 IPing,它将职责委托给 Eureka 来确定服务端是否已经启动

Feign

Spring Cloud Netflix 的微服务都是以 HTTP 接口的形式暴露的,所以可以用 Apache 的 HttpClient 或 Spring 的 RestTemplate 去調用

而 Feign 是一個使用起來更加方便的 HTTP 客戶端,它用起來就好像調用本地方法一樣,完全感覺不到是調用的遠程方法

总结起来就是:发布到注册中心的服务方接口,是 HTTP 的,也可以不用 Ribbon 或者 Feign,直接浏览器一样能够访问

只不过 Ribbon 或者 Feign 调用起来要方便一些,最重要的是:它俩都支持软负载均衡

Zuul 网关组件,提供路由,访问过滤


[SpringCloud] Ribbon 和Feign 区别?

[微服务] 分布式事物怎么实现?

tcc


[微服务] 分布式怎么实现数据一致性?

通过业务铺补偿


[微服务] CAP理论是什么?

一致性(Consistency)
一致性(Consistency),说的是每一个更新成功后,分布式系统中的所有节点,都能读到最新的信息。即所有节点相当于访问同一份内容,这样的系统就被认为是强一致性的。

可用性(Availability)
可用性(Availability),是每一个请求,都能得到响应。请求只需要在一定时间内返回即可,结果可以是成功或者失败,也不需要确保返回的是最新版本的信息。

分区容错性(Partition tolerance)
分区容错性(Partition tolerance),是说在网络中断,消息丢失的情况下,系统照样能够工作。

Eureka遵循AP理论(可用性和分区容错性)


quartz定时任务