我与狗子的日常2
Spring-Boot&Spring-Cloud Interview Questions
Que1: Spring Boot、Spring MVC 和 Spring 有什么区别?
Spring-Boot是一个快速构建企业级应用程序的开源框架, Spring是其核心的内容之一,当然它也包含Spring MVC。
Spring是一个开源框架,它的出现简化了企业级应用开发。Spring框架的主要核心有:
控制反转(IOC),在Spring开发模式中,Spring容器使用工厂模式创建我们所需要的对象,不需要我们自己手动new。
依赖注入(DI),Spring使用JavaBean对象的set方法或者带参构造为我们创建对象时将其属性自动设置所需要的值的过程,就是依赖注入。
面向切面编程(AOP),将一些重复的东西提取出来,例如记录日志,权限控制,事务管理等,Spring-aop 是通过动态代理实现的。
Spring-MVC Spring开发Web项目的一个模块, 其工作原理:
a.用户向服务器发送请求,请求被SpringMVC前端控制器DispatchServlet捕获;
b.通过DispatchServlet 对请求进行解析获得请求资源标示符URL,根据该URL调用HandlerMapping 将请求映射到处理器HandlerExcutionChain;
c.DispatchServlet根据获得Handler选择一个合适的HandlerAdapter适配器处理;
d.Handler对数据处理完成以后将返回一个ModeAndView逻辑视图对象给DispatchServlet;
e.DispatchServlet通过视图解析器ViewResolver 将逻辑视图转化为真正的视图view并返回给客户端;
Spring-Boot 是快速构建项目的一个全新的框架,其设计目的是为了简化Spring应用初始搭建、开发、调试、运行、部署等一系列过程。其使用了特定的方式(properties/yml)进行一些繁琐的配置,从而使开发人员不再定义样板化的配置。说白了就是他集成了很多优秀的框架,并在使用这些框架时为其提供默认配置,这些默认配置可方便的进行自定义修改。
Spring-Boot 与Spring MVC同时搭建一个web项目,Spring-Boot仅需要在POM文件中引入web的依赖即可,不需要做其他配置,并且Spring-Boot项目内嵌Tomcat容器,极大的简化了Web项目搭建与测试。而SpringMVC则需要各种繁琐的配置。
Spring-Boot 的starter是什么意思,常用的starter有哪些?
Spring-Boot的starter主要是用来简化依赖用的,例如开发web项目,仅需要在POM文件中引入spring-boot-starter-web 即可,该jar内部封装了spring开发web项目所有所必须的jar,例如:spring-web、spring-webmvc等jar包
常用的starter有:
spring-boot-starter-redis、spring-boot-starter-security、spring-boot-starter-thymeleaf、spring-boot-starter-tomcat、spring-boot-starter-web、spring-boot-starter-actuator等
介绍下Spring-Boot的Actuator
Actuator是Spring-Boot提供的对应用系统的自省和监控的集成功能,可以对应用系统进行配置查看和相关功能统计等。