大家好,又见面了,我是你们的朋友全栈君。
SpringBoot面试总结
一.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定制,参数及结果集的映射方式,更好的适应了当前互联网技术的发展。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/133971.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...