1.说说你对spring的理解:
①Spring是开源框架,提供IOC和AOP降低了应用开发的复杂度。
②Spring全家桶,有关java应用开发的全部功能,Spring都提供了解决方案,包括对web的支持、微服务的支持。
2.说下Spring由哪些模块组成:
①spring-core:核心类库
②spring-beans:对bean的支持,包括控制反转和依赖注入,BeanFactory核心工厂就在这个模块
③spring-context:spring上下文支持数据验证、国际化、事件传播等支持,ApplicationContext 就在这里,可以理解为运行时的 Spring 容器
基于上面的核心模块,spring也提供许多重要支持
④spring-aop:Aop的支持
⑤spring-jdbc:jdbc的支持
⑥spring-orm:对象关系映射框架的支持
⑦spring-mvc:mvc的支持
3.什么是IOC:
IOC即控制反转(Inversion of Controller)
首先IOC是一种思想不是一种技术,其次IOC这个思想也不是spring创造的。
控制的含义就是控制对象的创建
反转的含义是创建对象原来是由我们来创建的,现在交给了IOC容器来创建注入
4.IOC有什么好处:
创建对象都由IOC控制的时候,对象之间就不会有明确的依赖关系,就可以设计出松耦合的程序,实现了解耦。
5.什么是DI:
DI是IOC的实现,即依赖注入
@resource:按name类型注入bean
@autowire:默认按type类型注入bean required参数=false代表没有这个bean跳过,不报错,默认是required=true
6.什么是Bean:
用于依赖注入得对象就是Bean。即可已getBean返回的东西。
7.BeanFactory有什么用:
BeanFactory其实就是IOC的底层容器,是Bean的工厂用来创建Bean,是Spring的核心
8.Bean的作用域:
singleton:一个 IOC 容器内部仅此一个
prototype:原型,多实例
request:每个请求都会新建一个属于自己的 Bean 实例,这种作用域仅存在 Spring Web 应用中
session:一个 http session 中有一个 bean 的实例,这种作用域仅存在 Spring Web 应用中
application:整个 ServletContext 生命周期里,只有一个 bean,这种作用域仅存在 Spring Web 应用中
websocket:一个 WebSocket 生命周期内一个 bean 实例,这种作用域仅存在 Spring Web 应用中
9.Bean的生命周期:
创建实例→注入属性→初始化→使用→销毁
10.springMVC的理解:
springMVC是基于ServletApi构建的,核心是DispatcherServlet 即前端控制器
11.spring事务传播行为有什么用:
控制事务的边界
12.springboot的优点:
-
整合了spring和springmvc框架,简化了开发者对配置文件的配置
-
内部自带Tomcat,不用单独下载传统服务器然后把项目打成war包部署到服务器上,直接就可以运行。
-
有pom文件,可以简化maven依赖 13.对AOP的理解
实现AOP(在不改变核心业务代码基础上,增强功能,使外围业务代码与核心业务代码分离)思想可以使用AspectJ框架和Spring AOP框架实现,AspectJ需要编译器,因此比较麻烦,但是运行时没有开销,所以在性能上强于Spring AOP
如果项目使用的spring框架,选取spring aop,与spring ioc紧密结合,如果项目没有使用spring框架,那么选中AspectJ,或者说想在什么期间进行功能增强,若想在编译期间选择AspectJ,运行期间Spring AOP
14.springCloud核心组件:
-
eureka注册中心:把各个服务注册到注册中心上
-
feign远程调用:使用了动态代理,如果某个接口定义了@FeignClient注解,feign的动态代理会根据接口上的@RequestMapping、@PathVariable等注解动态构造出请求的服务地址
-
ribbon负载均衡:Ribbon的负载均衡默认使用的最经典的Round Robin轮询算法 负载均衡的三种方式:(轮询Round Robin、随机Random、ResponseTime加权重)
-
zuul网关(安全,监控,限流,路由)
-
hystrix隔离、熔断、降级
-
config配置中心
-
shrio安全权限控制
15.springCloud和dubbo的本质区别
springcloud放弃了dubbo的rpc协议,使用的是http协议的restful风格