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)结束
springboot面试题
最新推荐文章于 2025-03-22 03:43:50 发布