1、SpringBoot核心注解?
@SpringBootApplication:
组合了以下三个注解:
-
@Configuration
:表示该类声明了多个 Bean 实例的注解类,可以使用@Bean
注解标注方法,将返回值注入容器中。 -
@EnableAutoConfiguration
:是 Spring Boot 核心注解,能够帮助我们进行自动配置,根据当前工程中的依赖以及应用程序属性来推断、判断需要配置哪些类的对象。 -
@ComponentScan
:用于 Spring 容器的自动扫描,扫描当前类所在包以及其子包下的所有装配了 Bean 的组件。
2、SpringBoot自动配置是什么?分析下过程?
Spring Boot 自动配置是一种特性,它可以根据当前 Spring Boot 项目的依赖关系和配置文件中的属性,自动完成大部分的配置工作,减少开发者的手动配置工作量,提高开发效率。
例如,我们想要使用 Spring Boot 提供的支持 JDBC 的 Starter 依赖:
在引入这个 Starter 依赖之后,Spring Boot 会自动进行以下工作:
-
自动选择并配置数据源,如果没有任何数据源实现可用,它会自动使用嵌入式数据库 H2。
-
自动创建 JdbcTemplate,并注入到 Spring 容器中,方便使用。
-
自动扫描并装载数据库连接池和驱动
-
自动处理所有 Spring JDBC 所需的依赖和应用程序上下文的配置。
3、@ConfigurationProperties和@Value注解的作用和区别?
1.使用场景
@ConfigurationProperties
注解通常用于将多个配置属性注入到同一个 Bean 实例中,而 @Value
注解通常用于将一个或者几个配置属性注入到一个域属性中。
2.配置文件前缀
@ConfigurationProperties
注解能够将使用相同前缀的属性注入到同一个 Bean 实例中,而 @Value
注解则无法实现这一点。
3.属性值的校验
使用 @ConfigurationProperties
注解,可以方便地对属性值进行校验和转换,如果属性值类型不一致,甚至可以改变属性值的默认值。
而 @Value
注解只能用于基本数据类型和字符串等常见类型的注入,无法实现类型转换和校验等功能。
4.动态更新
使用 @ConfigurationProperties
注解注入的属性值支持动态更新,如果配置文件中的属性值发生变化,Spring Boot 会自动更新对应的 Bean 实例中的属性值。而 @Value
注解的属性值只会在应用程序启动时装配一次,不支持动态更新。