SpringBoot

1、SpringBoot核心注解?

@SpringBootApplication是 Spring Boot 中的一个组合注解,包含了三个核心注解:

  • @SpringBootConfiguration:表明该类是Spring Boot配置类,等同于@Configuration。
  • @EnableAutoConfiguration:自动配置 Spring 应用程序所需的所有配置。具体而言,这个注解启用了 Spring Boot 应用程序上下文中的自动配置,尝试着猜测和配置应用程序所需的所有 Bean。
  • @ComponentScan:Spring 组件扫描器,用于扫描和识别当前 Spring Boot 应用程序中的其他组件,比如控制器、服务、仓库等等。

2、SpringBoot自动配置是什么?分析下过程?

        SpringBoot 的自动配置是指,在 SpringBoot 应用启动的过程中,通过扫描 classpath 下的 jar 包和类,自动配置符合条件的组件,避免了繁琐的手动配置过程,使得开发人员可以更加便捷地搭建和使用 Spring 应用。

过程:

  • 自动扫描:Spring Boot 会自动扫描类路径下的配置类和组件类,这些类通常位于 @SpringBootApplication 注解所在的类的同级目录(或者子目录)下。
  • 条件装配:Spring Boot 会根据项目所引入的依赖和环境变量等情况,自动选择合适的配置类,也就是说,如果项目中引入了某个第三方库,而且 Spring Boot 已经提供了这个库的自动配置,那么 Spring Boot 就会自动启用这个配置。
  • 配置绑定:Spring Boot 可以将配置文件中的属性和字段进行绑定。Spring Boot 遵循一套固定的规则,可以很容易地将 application.properties 或 application.yml 中的配置项绑定到 Java 对象的字段中。
  • 自动配置类加载:Spring Boot 会将所有自动配置类注入到 Spring 容器中,以便在应用程序中使用。
  • 自动装配:Spring Boot 在启动时会尝试将所有可用的组件(包括我们自己创建的和 Spring Boot 自带的)进行自动装配。

3、@ConfigurationProperties和@Value注解的作用和区别?

  • @ConfigurationProperties和 @Value 注解都用于将外部配置文件中的属性值注入到 Spring Bean 中。但是它们的作用和用法是不同的,主要有以下几点区别:
  • 作用对象不同:@ConfigurationProperties 用于将外部属性文件中的值注入到一个 Bean 中,而 @Value 则可以注入到 Bean  的属性、方法参数以及使用 SpEL 表达式的地方。
  • 参数设置不同:@ConfigurationProperties 可以将外部配置文件的属性一次性注入到 Bean 属性中,而 @Value 则需要设置 propertyName 和 defaultValue,可以单独注入一个属性值。
  • 数据类型不同:@ConfigurationProperties 适用于比较复杂的属性结构,可以将一组属性打包成一个 POJO 类后进行注入,而@Value 注入的值只能是一个简单类型,如字符串、整数、浮点数等。
  • 配置文件前缀:@ConfigurationProperties 可以通过 prefix 属性指定一个前缀,将指定前缀的属性自动注入到 Bean 中,而 @Value 需要在属性名称前面加上前缀,如:${prefix.propertyName}。

总体来说,@ConfigurationProperties 更适合于注入复杂属性结构,而 @Value适合于单个属性注入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值