SpringBoot面试总结「建议收藏」

2022-06-26 11:21:18 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

SpringBoot面试总结

  • 一.SpringBoot入门
    • 1. SpringBoot是什么?
    • 2. SpringBoot的核心特性是什么?
    • 3.SpringBoot项目启动原理?
    • 4.说说Spring框架管理Bean对象有什么优势吗?(面试)
    • 5.重难点分析
      • 1.Spring boot 是什么?
      • 2.Spring boot 核心优势?(启动依赖,自动配置-开箱即用,健康检查-系统监控)
      • 3.Spring boot 项目的创建方式?
      • 4.Spring boot项目启动时,Bean的初始化过程是怎样的?
      • 5.Spring boot 项目启动时,Bean对象的依赖注入过程是怎样的?
      • 6.Spring 框架中的Bean对象有什么特性?
      • 7.Spring 框架中单例(singleton)作用域对象特点,应用场景?
      • 8.Spring 框架中多例(prototype)作用域对象特点,应用场景?
    • 6.开发中遇到的问题
      • 创建spring starter 项目时pom.xml文件错误?问题分析:
  • 二.SpringBoot基础
    • 1.SpringBoot整合连接池
    • 2. Spring Boot 整合MyBatis框架
      • 2.1 概述

一.SpringBoot入门

1. SpringBoot是什么?

Spring boot是一个脚手架(而非框架),构建于Spring框架(Framework)基础之上,基于快速构建理念,提供了自动配置功能,可实现其开箱即用特性(创建完一个基本的项目以后,可零配置或者少量配置即可运行我们的项目)。

2. SpringBoot的核心特性是什么?

起步依赖 自动配置 健康检查

3.SpringBoot项目启动原理?

SpringBoot 项目在启动时,首先基于启动入口类上的注解描述,进行自动配置并扫描启动类所在包以及子包中的类进行加载,然后检测类上是否有Spring框架中指定的注解描述(例如@Component,@Controller,@Service等)。假如有,则将类交给Spring框架中的BeanFactory工厂接口的实现类对象,此工厂对象会基于反射创建Bean的实例。

4.说说Spring框架管理Bean对象有什么优势吗?(面试)

Spring 是一个资源整合框架(Framework),通过spring可将很多资源(自己写的对象或第三方提供的对象,例如连接池等)整合在一起,然后进行科学应用,以便更好的对外提供服务。 Spring框架可以为由它管理的对象(Bean)提供懒加载策略(对象暂时用不到,则无需加载和实例化),作用域(例如singleton-频繁用时可以考虑内存中只有一份,prototype-使用次数少时可以用时创建,不用时销毁),生命周期方法(更好实现对象的初始化和资源销毁),以实现对象对系统资源的有效使用。

5.重难点分析

1.Spring boot 是什么?

脚手架而非框架,也可以看成是框架脚手架,做了架子工要做的事情-搭建项目基础骨架的工作人员

2.Spring boot 核心优势?(启动依赖,自动配置-开箱即用,健康检查-系统监控)

3.Spring boot 项目的创建方式?

https://start.spring.io

4.Spring boot项目启动时,Bean的初始化过程是怎样的?

查找,加载,读和存储配置,创建和存储实例对象

5.Spring boot 项目启动时,Bean对象的依赖注入过程是怎样的?

标记,查找,注入

6.Spring 框架中的Bean对象有什么特性?

延迟加载,作用域,生命周期方法

7.Spring 框架中单例(singleton)作用域对象特点,应用场景?

频繁使用的大对象

8.Spring 框架中多例(prototype)作用域对象特点,应用场景?

使用很少的小对象

6.开发中遇到的问题

创建spring starter 项目时pom.xml文件错误?问题分析:

1)检查网络配置(是否网络畅通,不能手机网络) 2)检测maven配置是否正确(严格按文档配置执行)。 3)右键项目maven update 强制更新。 4)更换maven私服仓库(选文档中的)

二.SpringBoot基础

1.SpringBoot整合连接池

实际开发中应用程序与数据库交互时,“获得连接”或“释放资源”是非常消耗系统资源的两个过程,为了解决此类性能问题,通常情况我们采用连接池技术来重用连接Connection对象,如图下图所示:

Java为数据库连接池提供了公共的接口:javax.sql.DataSource,各个厂商需要让自己的连接池实现这个接口。然后我们的应用程序中耦合与这个接口,便可以方便的切换不同厂商的连接池,常见的连接池有DBCP、C3P0,DRUID,HikariCP等。 通过连接池获取连接的一个基本过程,如图下图所示:

在上图中,用户通过DataSource对象的getConnection()方法,获取一个连接。假如池中有连接,则直接将连接返回给用户。假如池中没有连接,则会调用Dirver(驱动,由数据库厂商进行实现)对象的connect方法从数据库获取,拿到连接以后,可以将连接在池中放一份,然后将连接返回给调用方。

2. Spring Boot 整合MyBatis框架

2.1 概述

Mybatis是一个优秀的持久层框架,底层基于JDBC实现与数据库的交互。并在JDBC操作的基础上做了封装和优化,它借助灵活的SQL定制,参数及结果集的映射方式,更好的适应了当前互联网技术的发展。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/133971.html原文链接:https://javaforall.cn

0 人点赞