目录
2. @SpringBootApplication注解的作用?
9. Spring Boot如何支持GraalVM原生镜像?
13. Spring Boot和Spring Cloud有什么区别?
14. 如果让你设计一个秒杀系统,你会如何用Spring Boot实现?
一、Spring Boot基础篇(⭐)
1. Spring Boot的核心优势是什么?
参考答案:
-
自动装配:通过条件注解自动配置Bean
-
起步依赖:简化依赖管理(如
spring-boot-starter-web
) -
内嵌容器:无需部署WAR包,直接运行JAR
-
生产就绪:Actuator提供健康检查、指标监控等
2. @SpringBootApplication注解的作用?
// 组合注解的源码解析
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan
public @interface SpringBootApplication {}
答案:
-
@SpringBootConfiguration
:标记主配置类 -
@EnableAutoConfiguration
:启用自动配置 -
@ComponentScan
:包扫描范围默认为主类所在包及其子包
二、自动配置进阶篇(⭐⭐⭐)
3. 自动配置的实现原理?
回答要点:
-
启动时扫描
META-INF/spring.factories
-
通过
@ConditionalOnClass
等条件注解判断是否生效 -
通过
application.properties
覆盖默认配置
4. 如何自定义Starter?
实战示例:
-
创建自动配置类:
@Configuration @ConditionalOnClass(MyService.class) @EnableConfigurationProperties(MyProperties.class) public class MyAutoConfiguration { @Bean @ConditionalOnMissingBean public MyService myService(MyProperties properties) { return new MyService(properties); } }
-
在
resources/META-INF
下创建spring.factories
:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.example.MyAutoConfiguration
三、性能优化篇(⭐⭐⭐⭐)
5. Spring Boot应用启动慢如何排查?
排查步骤: