《面试宝典》 2019年springboot面试高频题(java)
前言
2019年已经成为了过去,借此机会想好好总结一下2019年项目研发的成效,看看在项目从无到有,都经历了那些变化?取得了哪些成果?踩过哪些坑?一个人、一个研发团队要想有质的飞跃,必须善于反思过去,总结经验,只有这样才能精准的定位问题并制定有效的改进措施。
1、什么是 Spring Boot?
“Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
用过springboot的社友应该都知道,搭建一个完整的spring项目,我们得配置依赖,配置spring的xml。其中一大难点,就是jar包冲突的问题。
Spring Boot让我们更关注于业务逻辑的开发,大大的提高了我们的效率,是从事微服务开发必点的一个技能点。
2、Spring Boot有哪些优点?
避免大量的Maven导入和各种版本冲突
减少开发学习时间,支持各种技术的start。
提高内置的tomcat,可以直接运行。
Spring Boot使监控变得简单(actuator)
基于不同环境,使用对应的配置(dev,pro等等),再也不用像以前一样手动改配置咯。
注意:springboot对于我们开发是方便了不少,但是,建议,我们先学习spring后,再来使用springboot,因为springboot是从spring上衍生出来的,不然,在springboot的学习过程中,会有点懵,不知道为什么要这样配置,底层是怎么样实现的。
3、Spring Boot 的配置文件有哪几种格式?它们有什么区别?
.properties 和 .yml,它们的区别主要是书写格式不同,社长强烈推荐使用yml格式,有层次感,方面阅读。
4、什么是 Spring Boot Stater ?
Springboot方便的一个地方,就是内部封装了很多的Stater
列举一些常用的Stater
应用日志:spring-boot-starter-logging
快速web应用开发:spring-boot-starter-web
面向切面编程:spring-boot-starter-aop
集成rabbitMQ:spring-boot-starter-amqp
注意:集成过程中,springboot会默认一些配置,需要我们开发了解集成技术点的一些配置。
5.创建一个 Spring Boot Project 的最简单的方法是什么?
通过idea创建一个Spring Initializr项目,注意eclipse需要下载STS插件。
6.springboot项目可以通过哪几种方式运行?
1)打成jar包,通过java -jar jar包名运行
2) 打成war包,放入容器中运行,官网建议生产环境使用打成war包方式。
7.springboot如何实现热部署?
springboot默认是不默认启动热部署的,需要我们自己加入热部署的依赖,springboot有两个classloader存在,分工明确,一个辅助管理jar包,另外一个restartClassloader用来封装用户的代码,修改代码是会重启restartClassloader,当文件改动后,部分重启,所以重启效率相对于传统的ssm框架重启速度更快
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
8. Spring Boot 如何定义多套不同环境配置?
1)编写多个application.yml文件,以生产和本地为例子
application.yml
application-pro.yml
application-dev.yml
2)切换application.yml 里面对应的值
spring:
profiles:
active: dev
建议,通过分布式配置中心来进行管理,可以使用携程的apollo
9. Spring Boot 最核心的 3 个注解详解?
Springboot的一个入口就是main方法,我们可以观察到springboot项目的主类上必有一个@SpringBootApplication注解。实际上他等价于@Configuration,@EnableAutoConfiguration 和 @ComponentScan这三个注解的组合。
@Configuation:
加载Spring方法
配置spring并启动spring容器@EnableAutoConfiguration 注解:
点击这个注解,查看他的源码,发现他通过@import实现了@Import(AutoConfigurationImportSelector.class)
@ComponentScan:
描述表的扫描范围
公众号:程序猿学社
每周实时更新
《面试宝典》 2019年springboot面试高频题(java)的更多相关文章
- java面试宝典2019(好东西先留着)
java面试宝典2019 1.meta标签的作用是什么 2.ReenTrantLock可重入锁(和synchronized的区别)总结 3.Spring中的自动装配有哪些限制? 4.什么是可变参数? ...
- 2019年springmvc面试高频题(java)
前言 2019即将过去,伴随我们即将迎来的又是新的一年,过完春节,马上又要迎来新的金三银四面试季.那么,作为程序猿的你,是否真的有所准备的呢,亦或是安于本职工作,继续做好手头上的事情. 当然,不论选择 ...
- 2019年mybatils面试高频题(java)
前前言 2019即将过去,伴随我们即将迎来的又是新的一年,过完春节,马上又要迎来新的金三银四面试季. 那么,作为程序猿的你,是否真的有所准备的呢,亦或是安于本职工作,继续做好手头上的事情. 当然,不论 ...
- 2019春招面试高频题(Java版),持续更新(答案来自互联网)
第一模块--并发与多线程 Java多线程方法: 实现Runnable接口, 继承thread类, 使用线程池 操作系统层面的进程与线程(对JAVA多线程和高并发有了解吗?) 计算机资源=存储资源+计算 ...
- 2020Java程序员架构师面试宝典,学习后面试必过,震惊,本人通过这篇教程,拿到了0个offer
1. 引言 Java后端学习路线 <吐血整理>顶级程序员工具集 https://github.com/AobingJava/JavaFamily 跟上Java8 经历阿里.头条.腾讯等知名 ...
- 集合类--最详细的面试宝典--看这篇就够用了(java 1.8)
看了一个星期源码,搜索上百篇博文,终于总结出了集合类的所有基础知识点,学集合,看这篇就够用了!!! 篇幅有点长, 如果你能全部理解,java最重要的集合就不怕了,秒过面试!!!(本篇素材来自网络,如有 ...
- 【Java】Java程序员面试宝典(第三版)第5章----Java程序设计基本概念
1.static静态变量,在次级作用域也可以被修改. 2.k++ + k++.第一个自加实际上只有在与计算+k++时补增.详情P36的题目. 3.Java数据类型从低到高分为(byte short c ...
- Java面试宝典(2020版)
一.Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境. JRE:Java ...
- 30页软件测试人面试宝典文档资料,助你拿下了百度、美团、字节跳动、小米等大厂的offer【内含答案】
前言:看了一下桌边的日历,新的6月,已经过去5天了.明天又是周六了,大家准备怎么度过呢?趁着大家周末给大家分享一个软件测试工程师面试题汇总. 拿到大厂的offer一直是软件测试朋友的一个目标,我是如何 ...
随机推荐
- oracle函数 VARIANCE([distinct|all]x)
[功能]统计数据表选中行x列的方差. [参数]all表示对所有的值求方差,distinct只对不同的值求方差,默认为all 如果有参数distinct或all,需有空格与x(列)隔开. [参数]x,只 ...
- CDN WAF功能开放公测 提升网络应用安全性能
阿里云CDN WAF功能,是指CDN融合了云盾Web应用防火墙(Web Application Firewall,简称 WAF)能力,在CDN节点上提供安全防护的功能,该功能目前已经开放公测. WAF ...
- 什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
https://mp.weixin.qq.com/s/Co1LxS2h_ILh9syOmshjZg 什么是CGI CGI全称是“公共网关接口”(Common Gateway Interface),HT ...
- c++第一次的个人作业
循环结构是c++中重要的结构用以实现代码的反复使用 三种不同的循环结构以及嵌套是必须认识与能够使用的 三种循环结构分别是: 在for循环中可以在for后的括号内加入初始条件,循环条件与参数变化.使得整 ...
- LightOJ 1123 Trail Maintenance
题意:n个城市m天.每一天修一条道路,输出当前天数的最小生成树,但是这里有一个条件,就是说最小生成树必须包括全部n个城市,否则输出-1 思路:边数有6000如果每一天跑一次最小生成树的话就接近O(m^ ...
- <STL源码剖析> 6.3.6 power
计算power的算法说明 http://www.sxt.cn/u/324/blog/2112 翻译自 http://videlalvaro.github.io/2014/03/the-power-a ...
- Pytorch 多 GPU 并行处理机制
Pytorch 的多 GPU 处理接口是 torch.nn.DataParallel(module, device_ids),其中 module 参数是所要执行的模型,而 device_ids 则是指 ...
- Adam那么棒,为什么还对SGD念念不忘 (3)—— 优化算法的选择与使用策略
在前面两篇文章中,我们用一个框架梳理了各大优化算法,并且指出了以Adam为代表的自适应学习率优化算法可能存在的问题.那么,在实践中我们应该如何选择呢? 本文介绍Adam+SGD的组合策略,以及一些比较 ...
- IP地址和物理地址有什么区别
所谓IP地址就是给每个连接在Internet上的主机分配的一个32bit地址.简单地说就是你在整个互联网上的ID. MAC(Media Access Control,介质访问控制)地址 (物理地址)是 ...
- java UDP传输
①:只要是网络传输,必须有socket . ②:数据一定要封装到数据包中,数据包中包括目的地址.端口.数据等信息. 直接操作udp不可能,对于java语言应该将udp封装成对象,易于我们的使用,这个对 ...