Spring相关面试题(更新中)

目录

Spring MVC

AOP理解

IOC

依赖注入

反射

SpringBoot注解

Bean的创建周期

Spring的事务管理

SpringBoot起步依赖

Mybatis$和#区别

Spring MVC执行流程

SpringBoot启动流程

@Autowired和@Resource

SpringBoot自动装配

SpringBoot和Spring区别


Spring MVC

MVC是一种设计模式,软件被分为三层,模型层、视图层、控制层。模块层定义实体对象类型,视图层用户界面等,控制层负责业务逻辑。

AOP理解

AOP面向切面编程,是一种编程思想,是对OOP的一种补充,它可以对业务逻辑的各个部分进行隔离,降低耦合,提高代码的可重用性。它的底层是通过动态代理实现的。它的应用场景有事物、日志管理等。

IOC

控制反转,把对象与对象的依赖关系交给Spring维护,降低耦合度,DI依赖注入是IOC实现方法。注入方式有:Setter、接口、构造方法。

依赖注入

依赖注入是实现程序解耦的一种方式,属于IOC的一种类型。IOC(是指把创建对象,操作属性的事交给第三方框架来进行实现) 依赖注入的目标是在代码之外管理程序组建间的依赖关系

  • 构造方法注入。
  • Setter方式注入。
  • 接口注入。

反射

反射就是在程序的运行期间,动态获得类的属性和方法,对于任何一个类,都能知道他的所有方法和属性。

SpringBoot注解

@SpringBootApplication 它是SpringBoot的核心注解,用于开启自动配置。

@EnableAutoConfiguration 自动配置注解。

@Conditional 是由Spring4.0版本引入的新特新,根据指定条件来决定进行Bean的实例化和装配。

Bean的创建周期

创建、初始化、调用、销毁

Spring的事务管理

两种事务管理 1.编程事物管理 2. 声明事务管理。

编程式事务可以将事务管理的范围控制的更为精确,声明式事务这种方式十分的方便,我们只需在方法上加上Transaction注解。

SpringBoot起步依赖

将开发的各种场景做成Starter依赖,springBoot就能自动扫描并启动相应配置。要遵循“约定大于配置”原则。

Mybatis$和#区别

$设置参数时,mybatis会创建普通的sql语句,然后在执行sql语句是将参数拼入sql。

#设置参数时,Mybatis会创建预编译的SQL语句,然后在执行SQL时Mybatis会为预编译SQL中的占位符赋值。

Spring MVC执行流程

1、 用户向服务器发送请求,请求被 Spring 前端控制 Servelt DispatcherServlet 捕获(捕获)

2、 DispatcherServlet对请求 URL进行解析,得到请求资源标识符(URI)。然后根据该 URI,调用 HandlerMapping获得该Handler配置的所有相关的对象(包括 Handler对象以及 Handler对象对应的拦截器),最后以 HandlerExecutionChain对象的形式返回;(查找 handler)

3、 DispatcherServlet 根据获得的 Handler,选择一个合适的 HandlerAdapter。 提取Request 中的模型数据,填充 Handler 入参,开始执行 Handler(Controller), Handler执行完成后,向 DispatcherServlet 返回一个 ModelAndView 对象(执行 handler)

4、DispatcherServlet 根据返回的 ModelAndView,选择一个适合的 ViewResolver(必须是已经注册到 Spring 容器中的 ViewResolver) (选择 ViewResolver)

5、通过 ViewResolver 结合 Model 和 View,来渲染视图,DispatcherServlet 将渲染结果返回给客户端。(渲染返回)

快速记忆技巧:

核心控制器捕获请求、查找Handler、执行Handler、选择ViewResolver,通过ViewResolver渲染视图并返回

SpringBoot启动流程

调用run方法,创建SpringApplication实例化对象,再对这个对象调用自身的Run方法,获取监听器参数配置、打印banner信息、创建初始化容器、监听器消息推送。

@Autowired和@Resource

@Autowired是Spring提供的注解,只能按类型注入,按类型注入,可以按名称装配,结合@Qualifier注解一起使用。

@Resource是JDK题提供的注解,默认按名称注入,也支持按类型注入。

SpringBoot自动装配

加载Spring.factories中的autoConfiguration类,满足conditional注解的条件时,实例化bean

SpringBoot和Spring区别

1)SpringBoot本质上是Spring,完成了一些SpringBean的配置

2)SpringBoot使用“习惯优于配置”的理念让你项目快速运行。

3)SpringBoot本身不提供Spring的核心功能,而是作为Spring的脚手架框架。

优点:1)快速构建项目。

2)项目可独立运行。

3)可以对主流开发框架无配置集成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值