华为二面:SpringBoot如何自定义_Starter_?
并且Spring Boot还采用条件注解(如
@ConditionalOnClass
、
@ConditionalOnMissingBean
等)来智能判断何时应用特定的配置。这些注解可以根据类路径中是否存在特定类、系统属性或环境变量的值等因素,决定是否应该激活某个自动配置类。这意味着只有当满足特定条件时,相应的Bean才会被创建和注入。
而对于应用主类则是用
@SpringBootApplication
注解标识。
@SpringBootApplication
是一个复合注解,包含了
@SpringBootConfiguration
、
@EnableAutoConfiguration
和
@ComponentScan
三个注解的功能。其中
@SpringBootConfiguration
是一个Spring配置类,可以替代
@Configuration
注解,声明当前类是Spring配置类,里面包含了一系列
@Bean
方法或
@ConfigurationProperties
等配置。
@EnableAutoConfiguration
启用自动配置特性,告诉Spring Boot根据应用类路径中的依赖来自动配置Bean。Spring Boot会根据类路径扫描的结果,智能地决定哪些自动配置类应当生效。
@ComponentScan
会自动扫描和管理Spring组件,包括@Service、@Repository、@Controller和@Component等注解标注的类。通过该注解,Spring Boot能自动发现和管理应用中的各个组件,并将其注册为Spring容器中的Bean。
通过上述机制,Spring Boot能够智能识别项目依赖、自动配置Bean,并结合类路径扫描确保所有相关的组件和服务都被正确地初始化和管理,我们就可以专注于业务逻辑的开发,而不必过多考虑基础设施层面的配置问题。