Springboot 常见注解

@SpringBootApplication 注解

@SpringBootApplication 是 Spring Boot 的一个核心注解,主要用于开启自动配置和组件扫描,是一个便捷的注解,汇集了 @Configuration@EnableAutoConfiguration@ComponentScan 三个注解的功能。下面是对这些注解的底层工作原理的解释:

1. @Configuration:

  • 这个注解表明该类是一个配置类,可以替代 XML 配置文件。在类中,可以使用 @Bean 注解在方法上,来定义和注册 Bean。Spring 容器会在启动时扫描这些配置类,来构建和维护应用程序上下文中的 Bean 定义和服务。

2. @EnableAutoConfiguration:

  • 这是 Spring Boot 的自动配置魔法所在。这个注解告诉 Spring Boot 基于添加的 jar 依赖自动配置应用程序。例如,如果 spring-webmvc 在类路径上,它自动假设你正在开发一个 web 应用程序,并对 Spring MVC 进行配置。
  • @EnableAutoConfiguration 通过 @Import 将自动配置导入到 Spring 的应用程序上下文中。这些自动配置类通常是用条件注解(如 @ConditionalOnClass@ConditionalOnBean 等)标注的,这意味着自动配置会在满足特定条件时运行。

3. @ComponentScan:

  • 这个注解让 Spring Boot 在包中搜索注解了 @Component@Service@Repository@Controller 等的类,并将它们注册为 Bean。这样,Spring 上下文中就能自动发现和注册你的 Beans,这使得定义配置的方式更加灵活和强大。

@EnableAutoConfiguration 是 Spring Boot 中一个关键的注解,它的主要作用是利用 Spring Boot 的自动配置机制来简化应用配置。这个注解背后的工作原理涉及几个重要的组件和概念,这些帮助 Spring Boot 在不需要过多配置的情况下,智能地配置 Spring 应用程序。下面详细介绍其底层原理:

1. @Import 注解

@EnableAutoConfiguration 注解本身被 @Import 注解所标记,这意味着它会导入其他的配置类(特别是 AutoConfigurationImportSelector 类)到 Spring 应用的上下文中。AutoConfigurationImportSelector 是关键的组件,负责实现自动配置的逻辑。

2. AutoConfigurationImportSelector

AutoConfigurationImportSelector 是一个选择器,它会根据条件选择并应用自动配置类。这些自动配置类通常位于 Spring Boot 的 spring-boot-autoconfigure 依赖中,包含了对 Spring 生态系统各种技术的自动配置支持(如 JPA, Jackson, Spring Security 等)。

3. 条件注解(Conditional Annotations)

自动配置类使用了大量的条件注解(如 @ConditionalOnClass, @ConditionalOnBean, @ConditionalOnProperty 等),这些注解确保只有在满足特定条件时,相关的配置才会被应用。例如:

  • @ConditionalOnClass: 只有当类路径上存在指定的类时,相应的配置才会生效。
  • @ConditionalOnBean: 只有当 Spring 上下文中存在指定的 Bean 时,相关的配置才会生效。
  • @ConditionalOnProperty: 只有当一个特定的属性有一个特定的值时,相关的配置才会生效。

4. spring.factories 文件

所有的自动配置类都会在 META-INF/spring.factories 文件中被列出。这个文件位于各个自动配置模块的资源目录下,AutoConfigurationImportSelector 会读取这个文件,查找所有配置了 EnableAutoConfiguration 键的配置类。

5. 自动配置的顺序

自动配置类通过 @AutoConfigureOrder@AutoConfigureAfter / @AutoConfigureBefore 注解指定加载顺序,这确保了依赖关系得到正确处理,例如,数据库的自动配置应该在 JPA 之前完成。

总的来说,@EnableAutoConfiguration 告诉 Spring Boot “查看你的类路径,基于你找到的类(比如有无某些特定的库),智能地默认配置你的 Spring 应用”。这种机制极大地简化了 Spring 应用的配置过程,让开发者可以更加专注于业务逻辑的实现。

@RestController

修饰类,该控制器会返回Json数据

@RequestMapping(“/path”)

修饰类,该控制器的请求路径

@Autowired

修饰属性,按照类型进行依赖注入

@PathVariable

修饰参数,将路径值映射到参数上

@ResponseBody

修饰方法,该方法会返回Json数据

@RequestBody(需要使用Post提交方式)

修饰参数,将Json数据封装到对应参数中

@Controller@Service@Compont

将类注册到ioc容器

  • 23
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值