1、什么是springboot框架?有什么优点?

Spring Boot是一个快速开发框架,快速的将一些常用的第三方依赖整合(通过Maven子父亲工程的方式),简化xml配置,全部采用注解形式,内置Http服务器(Jetty和Tomcat),最终以Java应用程序进行执行。
简化spring应用开发,约定大于配置
springboot是微服务开发的基础架构。

(1)快速搭建开发框架。
(2)开箱即用:提供了各种默认的配置。约定大于配置。
(3)内嵌tomcat容器,直接使用jdk运行项目(jar包)。
java -jar jar包名称
(4)没有冗余代码生成,无需xml配置。
(5)开发简单,提高开发效率。

2、springboot有哪些常用注解?

@SpringBootApplication
@ComponentScan
@SpringbootTest
@ImportAutoConfiguration
@SpringBootConfiguration
@ImportResource
@PropertySource
@PropertySource
@Lazy

3、springboot如何自动配置?

只要使用了@EnableAutoConfiguration注解就能实现自动配置
Spring Boot在进行SpringApplication对象实例化时会加载META-INF/spring.factories文件,将该配置文件中的配置载入到Spring容器。


1、通过@EnableAutoConfiguration找到spring.factories文件
2、加载自动配置类XXXAutoConfiguration
3、通过自动配置类加载对应的配置信息
4、实例化bean

4、springboot项目(run方法)启动流程?


启动流程:
1、创建springbootapplication对象,完成初始化

(1)加载资源文件
(2)初始化构造器
(3)初始化监听器
(4)指定启动类(读取注解)

2、执行run方法

(1)打印banner
(2)启动监听器
(3)创建上下文
(4)加载配置信息
(5)刷新上下文

3、创建bean工厂,实例化所有bean

5、什么是启动器?有哪些常见的启动器?

启动器Starters包含了一系列可以集成到应用里面的依赖包,可以一站式集成spring技术而不需要另找依赖包。


1、spring-boot-starter-web(嵌入tomcat和web开发需要servlet与jsp支持)
2、spring-boot-starter-data-jpa(数据库支持)
3、spring-boot-starter-data-redis(redis数据库支持)
4、spring-boot-starter-solr(solr搜索应用框架支持)
5、mybatis-spring-boot-starter(第三方的mybatis集成starter)

6、springboot配置文件执行顺序

如果在不同的目录中存在多个配置文件,它的读取顺序是:
1、config/application.properties(项目根目录中config目录下)
2、config/application.yml
3、application.properties(项目根目录下)
4、application.yml
5、resources/config/application.properties(项目resources目录中config目录下)
6、resources/config/application.yml
7、resources/application.properties(项目的resources目录下)
8、resources/application.yml

7、springboot如何进行环境配置?

提供多套配置文件,如:

applcation.properties
application-dev.properties
application-test.properties
application-prod.properties

然后再application.properties文件中指定环境,如:

spring.profiles.active=test

8、有哪些常见的页面静态化技术?

模板引擎:页面模板和数据的分离。

1、freemarker
2、velocity
3、thymeleaf

9、接口文档如何编写?

整合swagger在线接口文档
在启动类上加:@EnableOpenApi
也可以加在swagger配置类上。

@Api
加在controller类前。描述类的作用。
@ApiOperation
加在controller中的方法前。描述方法的作用。
@ApiImplicitParams
加在controller中的方法前。描述方法的参数(请求参数)。
@ApiResponses
加在controller中的方法前。描述方法的返回值(响应json数据)。
@ApiModel
加在实体类前,用于描述实体类的作用。
@ApiModelProperty
加在实体类的属性前,用于描述实体类的属性。

命名规范:
java属性名必须以两个及以上的小写字母开头!!!!
这意味着,数据库列名如果有多个单词构成,第一个单词必须有两个及以上的字母!!!!!

10、数据校验怎么完成?

  1. springboot整合spring validation
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId>
</dependency>
  1. 在接口方法参数上加注解@Valid
 public   String  test1(@Valid User user){return   "vali   ok";}
  1. 在实体类属性上加校验注解
 @NotNullprivate   String   uuName;
  1. 统一异常处理
    如果参数校验失败,会报异常BindException。

  2. 数据校验的注解

11、什么是 JavaConfig?

Spring JavaConfig 是Spring 社区的产品, 它提供了配置Spring IoC 容器的纯Java 方法。因此它有助于避免使用XML 配置。使用JavaConfig 的优点在于:

1、面向对象的配置。由于配置被定义为JavaConfig 中的类,因此用户可以充分利用Java 中的面向对象功能。一个配置类可以继承另一个, 重写它的@Bean方法等。
2、减少或消除XML 配置。基于依赖注入原则的外化配置的好处已被证明。但是,许多开发人员不希望在XML 和Java 之间来回切换。JavaConfig 为开发人员提供了一种纯Java 方法来配置与XML 配置概念相似的Spring 容器。从技术角度来讲,只使用JavaConfig 配置类来配置容器是可行的,但实际上很多人认为将JavaConfig 与XML 混合匹配是理想的。
3、类型安全和重构友好。JavaConfig 提供了一种类型安全的方法来配置Spring容器。由于Java 5.0 对泛型的支持,现在可以按类型而不是按名称检索bean,不需要任何强制转换或基于字符串的查找。

12、springboot配置文件有哪些格式?

spring-boot有三种配置文件的方式:properties、yaml、yml。spring-boot会自动加载properties、yaml和yml配置文件(yaml和yml是同一种格式,只是后缀名不一样)。当这三种配置文件同时存在时,加载顺序为:properties > yaml > yml 。当三种配置文件中的配置信息有冲突时,properties配置文件会覆盖后两种配置文件中的配置信息。

13、spring、springmvc、springboot区别?

1、Spring
Spring是一个开源容器框架,可以接管web层,业务层,dao层,持久层的组件,并且可以配置各种bean,和维护bean与bean之间的关系。其核心就是控制反转(IOC),和面向切面(AOP),简单的说就是一个分层的轻量级开源框架。
2、SpringMVC
SpringMVC提供了一种分离式的方法来开发Web应用。通过DispathcherServlet,MoudlAndViewViewResolver等组件进行开发。
3、Springboot
SpringSpringMVC的问题在于需要配置大量的参数
Springboot是一个微服务框架通过自动配置和启动器来解决这个问题。

14、springboot静态资源如何处理

加载目录优先级:

classpath:/META-INF/resources/
classpath:/resources/
classpath:/static/
classpath:/public/
webapp

自定义目录:

srping:mvc:static-path-pattern:/image/(**无括号)resource:static-locations:classpath:/images/

15、springboot如何打包运行

主要是通过maven 插件进行打包,将所有的项目依赖包都进行打包压缩,最终整个webServer项目生成一个jar文件包。
然后调用 java -jar xxxx-springboot.jar 进行运行,就完成了整个的项目运行了。

16、观察者模式

观察者模式(Observer),又叫发布-订阅模式(Publish/Subscribe),定义对象间一种一对多的依赖关系(注册),使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新(通知)。说白了就是个注册,通知的过程。

观察者模式的主要角色如下:

  • 抽象主题(Subject)角色:也叫抽象目标类,它提供了一个用于保存观察者对象的聚集类和增加、删除观察者对象的方法,以及通知所有观察者的抽象方法。
  • 具体主题(Concrete Subject)角色:也叫具体目标类,它实现抽象目标中的通知方法,当具体主题的内部状态发生改变时,通知所有注册过的观察者对象。继承Subject类,在这里实现具体业务,在具体项目中,该类会有很多变种。
  • 抽象观察者(Observer)角色:它是一个抽象类或接口,它包含了一个更新自己的抽象方法,当接到具体主题的更改通知时被调用。
  • 具体观察者(Concrete Observer)角色:实现抽象观察者中定义的抽象方法,以便在得到目标的更改通知时更新自身的状态。

观察者模式是一种对象行为型模式,其主要优点如下:

  1. 降低了目标与观察者之间的耦合关系,两者之间是抽象耦合关系。符合依赖倒置原则。
  2. 目标与观察者之间建立了一套触发机制。

它的主要缺点如下:

  1. 目标与观察者之间的依赖关系并没有完全解除,而且有可能出现循环引用。
  2. 当观察者对象很多时,通知的发布会花费很多时间,影响程序的效率。

springboot面试题相关推荐

  1. SpringBoot面试题及答案 110道(持续更新)

    最新SpringBoot面试题[附答案解析]SpringBoot面试题及答案,SpringBoot最新面试题及答案,SpringBoot面试题新答案已经全部更新完了,有些答案是自己总结的,也有些答案是 ...

  2. SpringBoot:三十五道SpringBoot面试题及答案!

    SpringBoot面试 前言 今天博主将为大家分享三十五道SpringBoot面试题及答案,不喜勿喷,如有异议欢迎讨论! Spring Boot 是微服务中最好的 Java 框架. 我们建议你能够成 ...

  3. 2021年SpringBoot面试题30道

    文章目录 前言 面试题系列文章传送门 SpringBoot面试题内容 1.谈谈你对Spring Boot的理解? 2. 为什么需要Spring Boot? 3. 说出Spring Boot 的优点 4 ...

  4. SpringBoot面试题大汇总附答案,SpringBoot面试题-持续更新中

    2021最新SpringBoot面试题[附答案解析]SpringBoot面试题及答案2021,SpringBoot2021最新面试题及答案,SpringBoot面试题新答案已经全部更新完了,有些答案是 ...

  5. SpringBoot面试题及答案140道(2021年最新)

    工作5年,处于找工作中ing.今年10月份刚刚整理出来的SpringBoot面试题,时间比较赶就没有按照模块分类排序了.总而言之,顺序比较乱,希望大家耐着性子 看.如果实在介意,评论告知,我会视情况作 ...

  6. Spring面试题汇总3:SpringBoot面试题及答案整理

    SpringBoot面试题及答案整理 1.什么是 Spring Boot? 多年来,随着新功能的增加,spring 变得越来越复杂.访问spring官网页面,我们就会看到可以在我们的应用程序中使用的所 ...

  7. 2021最新 SpringBoot面试题精选(附刷题小程序)

    推荐使用小程序阅读 为了能让您更加方便的阅读 本文所有的面试题目均已整理至小程序<面试手册> 可以通过微信扫描(或长按)下图的二维码享受更好的阅读体验! 文章目录 推荐使用小程序阅读 1. ...

  8. springboot 接收小程序图片以及参数_常见的SpringBoot面试题一

    1 什么是springboot ? 用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件)创建独立的spring引用程序 main方法运行 嵌入的 ...

  9. springboot书籍_常见的SpringBoot面试题四

    1.Spring Boot中的监视器是什么? Spring boot actuator是spring启动框架中的重要功能之一.Spring boot监视器可帮助您访问生产环境中正在运行的应用程序的当前 ...

  10. 年薪30万的Java架构师必会的springboot面试题

    [Java架构师面试网]收集整理了几乎整个架构师学习途中会遇到的面试题,希望大家都能早日圆自己的架构师梦~ 公众号:Java架构师面试网,关注回复"资料"即可领取精美整理的面试资料 ...

最新文章

  1. php serialize unserialize 数据序列化 与 反序列化
  2. Java连接Redis及操作(二)
  3. 全球域名商解析新增保有量15强:爱名网落榜
  4. 计算机安全模型研究与应用,软件哨兵安全动态检测模型的研究与实现-计算机应用研究.PDF...
  5. 论文阅读 - Joint Beat and Downbeat Tracking with Recurrent Neural Networks
  6. iris流程图_GitHub - LeoIris/vue: vue源码逐行注释分析+40多m的vue源码程序流程图思维导图 (diff部分待后续更新)...
  7. Application.Current的使用
  8. mysql 事务 注意 优化_MySQL入门详解(二)---mysql事务、锁、以及优化
  9. AAAI'22 Oral | 复旦x字节等提出:基于无监督编辑的反事实故事改写
  10. 呼叫转移XCAP log的查看
  11. Android 音量控制
  12. 第52届格莱美大奖完全获奖名单
  13. Hadoop培训视频教程
  14. [跑步] 跑步者的力量训练
  15. 微信公共号推广技巧、快速涨粉丝的7大技巧总结
  16. 【项目评级】ArcBlock(ABT)-区块链基石网络
  17. 嵌入式系统测试平台——ETest
  18. MyEclipse6.5下载地址(含注册码)
  19. 设计模式学习笔记(C++实现)(九)--组合模式
  20. ssm实现文件上传到SFTP服务器,centos7系统配置记录SFTP操作日志

热门文章

  1. Arduino ISP下载接口
  2. Cron 定时任务表达式
  3. 从exe程序反汇编得到py源码
  4. SpringMVC课堂笔记
  5. 小程序长列表优化,解决数据过多白屏问题
  6. Windows目录下SysWow64文件夹与System32文件夹
  7. FFmpeg 视频处理工具讲解
  8. “黑客帝国”装B特效,不分linux版本
  9. 让电脑「读懂」你的思想——java工程师的职业规划
  10. java 经纬度的距离计算工具包