1、spring 常用的注入方式有哪些
@Autowired構(gòu)造方法、方法、接口
| KEY | Value |
|---|---|
| 構(gòu)造器注入 | 通過(guò)將@Autowired注解放在構(gòu)造器上來(lái)完成構(gòu)造器注入,默認(rèn)構(gòu)造器參數(shù)通過(guò)類型自動(dòng)裝配 |
| 接口注入 | 通過(guò)將@Autowired注解放在構(gòu)造器上來(lái)完成接口注入。 |
| 方法參數(shù)注入 | 通過(guò)將@Autowired注解放在方法上來(lái)完成方法參數(shù)注入。 |
2、spring 支持幾種 bean 的作用域?
當(dāng)通過(guò)spring容器創(chuàng)建一個(gè)Bean實(shí)例時(shí),不僅可以完成Bean實(shí)例的實(shí)例化,還可以為Bean指定特定的作用域。Spring支持如下5種作用域:
| key | value |
|---|---|
| singleton | 單例模式,在整個(gè)SpringIoC容器中,使用singleton定義的Bean將只有一個(gè)實(shí)例 |
| prototype | 原型模式,每次通過(guò)容器的getBean方法獲取prototype定義的Bean時(shí),都將產(chǎn)生一個(gè)新的Bean實(shí)例 |
| request | 對(duì)于每次HTTP請(qǐng)求,使用request定義的Bean都將產(chǎn)生一個(gè)新實(shí)例,即每次HTTP請(qǐng)求將會(huì)產(chǎn)生不同的Bean實(shí)例。只有在Web應(yīng)用中使用Spring時(shí),該作用域才有效 |
| session | 對(duì)于每次HTTPSession,使用session定義的Bean豆?jié){產(chǎn)生一個(gè)新實(shí)例。同樣只有在Web應(yīng)用中使用Spring時(shí),該作用域才有效 |
| globalsession | 每個(gè)全局的HTTPSession,使用session定義的Bean都將產(chǎn)生一個(gè)新實(shí)例。典型情況下,僅在使用portletcontext的時(shí)候有效。同樣只有在Web應(yīng)用中使用Spring時(shí),該作用域才有效 |
3、簡(jiǎn)單的談一下SpringMVC的工作流程?
流程 1、用戶發(fā)送請(qǐng)求至前端控制器DispatcherServlet
2、DispatcherServlet收到請(qǐng)求調(diào)用HandlerMapping處理器映射器。
3、處理器映射器找到具體的處理器,生成處理器對(duì)象及處理器攔截器(如果有則生成)一并返回給DispatcherServlet。
4、DispatcherServlet調(diào)用HandlerAdapter處理器適配器
5、HandlerAdapter經(jīng)過(guò)適配調(diào)用具體的處理器(Controller,也叫后端控制器)。
6、Controller執(zhí)行完成返回ModelAndView
7、HandlerAdapter將controller執(zhí)行結(jié)果ModelAndView返回給DispatcherServlet 8、DispatcherServlet將ModelAndView傳給ViewReslover視圖解析器
9、ViewReslover解析后返回具體View
10、DispatcherServlet根據(jù)View進(jìn)行渲染視圖(即將模型數(shù)據(jù)填充至視圖中)。
11、DispatcherServlet響應(yīng)用戶
4、SpringCloud五大核心組件
| key | value |
|---|---|
| Netflix Eureka | 服務(wù)發(fā)現(xiàn) |
| Netflix Ribbon | 客服端負(fù)載均衡 |
| Netflix Hystrix | 斷路器 |
| Netflix Zuul | 服務(wù)網(wǎng)關(guān) |
| Spring Cloud Config | 分布式配置 |