springboot面试题

Springboot面试题
1,SpringBoot启动方式
IDE 运行Application这个类的main方法
在springboot的应用的根目录下运行mvn spring-boot:run
使用mvn install 生成jar后运行


2,SpringBoot中用那些注解
@SpringBootApplication
@Component:
@RestController


3,@EnableAutoConfiguration作用
从classpath中搜索所有META-INF/spring.factories配置文件然后,
将其中org.springframework.boot.autoconfigure.EnableAutoConfiguration key对应的配置项加载到spring容器


4,SpringBoot热部署使用什么?
Spring Loaded
spring-boot-devtools


5,热部署原理与热加载区别是什么?
部署方式
热部署在服务器运行时重新部署项目
热加载在运行时重新加载class
实现原理
热部署直接重新加载整个应用
热加载在运行时重新加载class
使用场景
热部署更多的是在生产环境使用
热加载则更多的实在开发环境使用


6,SpringBoot多数据源事务如何管理
@Async


7,SpringBoot如何实现打包
pom文件中主要针对不同的环境设置对应的profile,其中默认激活的是dev环境的配置
然后配置需要包含和过滤的application.properties
然后使用maven的打包命令实现不同环境打包即可


8,SpringBoot性能如何优化
tomcat内存调优
更改文件(catalina.sh)
启动部分的优化
可以移除 @SpringBootApplication 和 @ComponentScan 两个注解来禁用组件自动扫描,然后在我们需要的 bean 上进行显式配置:


9,SpringBoot2.0新特性
Spring Boot 2是完全基于java8,, 
http请求方面, 引入了Webflux, 他是基于Spring Webflux, 
它是一个新的非堵塞函数式 Reactive Web 框架,
可以用来建立异步的,非阻塞,事件驱动的服务,并且扩展性非常好。
性能对比于之前的同步方式有了一定的提高
db方面,默认引入了HikariCP,
替代了之前的tomcat-pool作为底层的数据库连接池, 对比于tomcat-pool,
 HikariCP拥有更好的性能,总而言之就是提高了db的访问速度。
redis方面, 
默认引入了Lettuce, 替代了之前的jedis作为底层的redis链接方式, 
同样Lettuce底层基于netty框架,使用异步的方式,访问redis,并且如果结合之前的Webflux, 
可以达成请求的全异步, 同样对比于之前的jedis,统一了redis和redis-cluster的访问方式,
简化了开发人员的使用方式,同时也提高了redis的访问速度
es方面,
默认也从之前的支持es2升级到了es5+, es5也出来了一段时间, 大部分的人应该也是通过自己实现来完成es5的对接, 
现在springboot2也是进行了es5的支持。
metrics方面,Spring Boot 2引入了Micrometer,来统一metrics的规范,
使得开发人员更好的理解和使用metrics的模块,而不需要关心对接的具体存储是什么东西。




10,SpringBoot执行流程
1)开始请求,
2)收集各种条件和回调接口,
3)通知started(),
4)创建并准备Environment,
5)通告environmentPrepared()
6) 创建并初始化ApplicationContext
7) 通告contextPrepare(),通告contextLoaded()
8) 调用ApplicationContext的refresh()方法,完成最终程序启动
9)执行ApplicationRunner和CommandlineRunner通告finished()
10)结束


 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值