《面试宝典》 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一直是软件测试朋友的一个目标,我是如何 ...
随机推荐
- TreeSet之用外部比较器实现自定义有序(重要)
Student.java package com.sxt.set5; public class Student{ private String name; private int age; priva ...
- 2018-7-9-dotnet-设计规范-·-数组定义
title author date CreateTime categories dotnet 设计规范 · 数组定义 lindexi 2018-07-09 14:26:48 +0800 2018-2- ...
- Python基础:13装饰器
装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的应用有插入日志.性能测试.事务处理等.装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关的雷同 ...
- Oracle基础学习4--Oracle权限传递
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/wang379275614/article/details/32215325 以下将用一个实例来解说: ...
- CREATE OR REPLACE FUNCTION
CREATE OR REPLACE FUNCTION SF_Taishou_Ksai_Date(v_receiptNum IN CHAR, ...
- Android Studio(八):Android Studio设置教程
Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...
- hdu 3662 3D Convex Hull
Problem - 3662 题意很简单,构造三维凸包,求凸包有多少个面. 代码如下: #include <cstdio> #include <iostream> #inclu ...
- Redis在Laravel项目中的应用实例详解
https://mp.weixin.qq.com/s/axIgNPZLJDh9VFGVk7oYYA 在初步了解Redis在Laravel中的应用 那么我们试想这样的一个应用场景 一个文章或者帖子的浏览 ...
- Python3:ImportError: No module named 'compiler.ast'
from compiler.ast import flatten 上面这条语句好像在python3 以后就废除了,如果使用的话就会报错.Traceback (most recent call last ...
- uva 100 The 3n + 1 problem (RMQ)
uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem= ...