SpringBoot中各种常用的注解

@Bean

类似于XML中的<bean></bean>,意为产生一个bean,交由spring管理

@Component

标识组件,使其自动被Spring扫描,并注册为Bean

@Service

@Component的特殊化,修饰Service层的的组件,用于封装业务逻辑

@SpringBootApplication

这个注解是Spring Boot最核心的注解,用在 Spring Boot的主类上(application),标识这是一个 Spring Boot 应用,用来开启 Spring Boot 的各项能力。实际上这个注解是@Configuration,@EnableAutoConfiguration,@ComponentScan三个注解的组合。由于这些注解一般都是一起使用,所以Spring Boot提供了一个统一的注解@SpringBootApplication。

@EnableAutoConfiguration

  • 自动配置机制@EnableAutoConfiguration 启用了 Spring Boot 的自动配置功能,根据应用的类路径和环境自动加载相应的配置类,简化了应用配置。
  • 减少手动配置:通过自动配置,开发者无需编写大量的配置代码,Spring Boot 会根据类路径和依赖自动配置常见的框架和组件。
  • @SpringBootApplication 配合使用:通常情况下,@EnableAutoConfiguration@SpringBootApplication 的一部分,因此开发者不需要单独使用它。
  • 禁用自动配置:你可以通过 @EnableAutoConfiguration(exclude = ...) 或在配置文件中禁用某些自动配置。

@Configuration

  • 定义配置类@Configuration 用来定义一个配置类,通常用于替代传统的 XML 配置文件,包含 @Bean 注解的方法。
  • 创建和管理 Bean:配置类中的 @Bean 注解方法用于定义 Bean,Spring 会自动管理这些 Bean 的生命周期和依赖关系。
  • @Component 的关系@Configuration 继承自 @Component,意味着 Spring 会自动扫描和注册被 @Configuration 注解的类,但它具有额外的代理机制来确保 Bean 的单例性。
  • 环境配置支持:可以通过 @Profile 等注解来为不同环境提供不同的配置。

通过 @Configuration,Spring Boot 和 Spring 框架提供了一种灵活和类型安全的配置方式,避免了传统 XML 配置带来的复杂性,并且与注解驱动的编程模式高度集成。

 @ComponentScan

@ComponentScan 是 Spring Framework 中一个重要的注解,用于启用 Spring 容器的 组件扫描 功能。它的作用是告诉 Spring 框架在哪些包中扫描并发现 @Component(及其衍生注解,如 @Service@Repository@Controller 等)标记的类,并将这些类自动注册为 Spring 的 Bean。通常,@ComponentScan 会与 @Configuration@SpringBootApplication 一起使用,来启用自动扫描和注入。

@Repository

用于标注数据访问组件,即DAO组件。

使用@Repository注解可以确保DAO或者repositories提供异常转译,这个注解修饰的DAO或者repositories类会被ComponetScan发现并配置,同时也不需要为它们提供XML配置项。

@RestController

@Controller和@ResponseBody的集合,使得开发 RESTful API 更加简便。用于定义 RESTful Web 服务的控制器,自动将返回的对象转为 JSON 或 XML 格式的响应体。适用于构建 API 接口,特别是为移动端、前后端分离的 Web 应用提供后端接口。

@ResponseBody

表示该方法的返回结果直接写入HTTP response body中

一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。

@Resource(name="name",type="type")

  • @Resource 是一种依赖注入方式,支持根据 Bean 名称或类型注入 Bean。
  • 主要用于 按名称 进行依赖注入,适用于字段名和 Bean 名称一致的情况。
  • 如果不指定名称,@Resource 会根据字段名或方法名来自动匹配 Bean。
  • @Resource 在多 Bean 配置的情况下,可以通过 name 属性明确指定注入哪个 Bean。

尽管 @Resource 在功能上和 @Autowired 有些重叠,它通常用于根据 Bean 名称进行注入,而 @Autowired 更常用于按类型注入。

@Autowired 

byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。

当加上(required=false)时,就算找不到bean也不报错。

@Scheduled

用于定时执行任务,它允许你通过简单的配置来定义任务的执行时间和频率,通常用于周期性执行某些操作,如定期清理数据、发送报告等。

@ConfigurationProperties

@ConfigurationProperties 是 Spring Framework 提供的一个注解,主要用于将配置文件(如 application.propertiesapplication.yml)中的属性自动绑定到 Java 类的字段上。通过这个注解,可以方便地读取和管理配置文件中的复杂配置,尤其是在需要映射到一个 POJO 类时。

@RequestMapping

RequestMapping是一个用来处理请求地址映射的注解;提供路由信息,负责URL到Controller中的具体函数的映射,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值