Spring boot常用注解介绍

目录

一、Spring Boot简介

二、核心注解

1.1@SpringBootConfiguration

1.2@EnableAutoConfiguration

1.3@ComponentScan

三、常用注解

1.@Configuration

2. @Bean

3. @Import

4. @ImportResource

5. @Autowired

6. @Resource(name=“name”,type=“type”)

7. @Inject

8.@Component

9. @Controller

10. @RestController

11. @Service

12. @Repository

13. @RequestMapping

14. @ResponseBody

15. @Value

16. @PathVariable

17. @Profiles

18. @ConfigurationProperties

19. @ControllerAdvice

20. @ExceptionHandler(Exception.class)


一、Spring Boot简介

Spring Boot是一个基于Spring框架的开源框架,其目标是简化Spring应用程序的开发过程并提供一种约定优于配置的方式。通过使用注解,Spring Boot可以自动配置和装配许多常见的功能和组件,从而减少了开发人员的工作量。

Spring Boot提供了许多注解,用于简化配置和开发过程。这些注解使开发人员能够以声明式的方式来定义Bean、处理请求、配置依赖等。通过使用这些注解,开发人员可以更加专注于业务逻辑,而不必过多关注框架的配置和细节。

除了上述提到的常用注解外,Spring Boot还提供了许多其他的注解,用于处理缓存、事务、安全、消息队列等方面的功能。这些注解使得开发人员可以轻松地集成和使用这些功能,而无需进行繁琐的配置。

二、核心注解

@SpringBootConfiguration

@EnableAutoConfiguration

@ComponentScan

1.1@SpringBootConfiguration

@SpringBootConfiguration注解是 Spring Boot 的核心注解,能够扫描Spring组件并自动配置Spring Boot,是一个组合注解。

与传统的 Spring 框架中使用的 @Configuration 注解相比,@SpringBootConfiguration注解是 @Configuration 注解的派生注解。这意味着当我们在一个类上使用@SpringBootConfiguration注解时,它实际上等同于同时使用了 @Configuration 注解。

由此可见,@SpringBootConfiguration注解的作用和 @Configuration注解相同,都是标识一个可以被组件扫描器的配置类,只是@SpringBootConfiguration被SpringBoot重新进行了封装命名。

1.2@EnableAutoConfiguration

@EnableAutoConfiguration注解表示开启自动配置功能是SpringBoot框架最重要的注解,也是实现自动化配置的注解,具有非入侵性。


 

1.3@ComponentScan

@ComponentScan注解是一个组件包扫描器,用于将指定包中的注解类自动装配到Spring的Bean容器中。@ComponentScan注解具体扫描的包 根路径由SpringBoot项目主程序启动类所在包的位置决定,在扫描过程中由@AutoConfigurationPackage注解进行解析,从而得到SpringBoot项目主程序启动类所在的具体位置。

三、常用注解

1.@Configuration

等同于spring的XML配置文件,使用Java代码可以检查类型安全。指出该类是 Bean 配置的信息源,相当于XML中的<beans></beans>,一般加在主类上。如果有些第三方库需要用到xml文件,建议仍然通过@Configuration类作为项目的配置主类——可以使用@ImportResource注解加载xml配置文件。

2. @Bean

相当于XML中的<bean></bean>,放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理;

3. @Import

用于导入一个配置类或配置类数组。可以在类上使用该注解。

3.1导入单个配置类
@Configuration
@Import(OtherConfig.class)
public class AppConfig {
    // ...
}
3.2导入多个配置类:
@Configuration
@Import({Config1.class, Config2.class})
public class AppConfig {
    // ...
}
3.3导入带有选择性条件的配置类:
@Configuration
@Import(value = {Config1.class, Config2.class}, condition = MyCondition.class)
public class AppConfig {
    // ...
}

4. @ImportResource

用于导入一个 XML 配置文件。可以在类上使用该注解。

5. @Autowired

自动导入依赖的bean,自动导入依赖的bean。byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。当加上(required=false)时,就算找不到bean也不报错;

6. @Resource(name=“name”,type=“type”)

没有括号内内容的话,默认byName,与@Autowired干类似的事;

7. @Inject

等价于默认的@Autowired,只是没有required属性;

8.@Component

泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注;

9. @Controller

用于定义控制器类,在spring项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(service层),一般这个注解在类中,通常方法需要配合注解@RequestMapping;

10. @RestController

用于标注控制层组件(如struts中的action),是@ResponseBody和@Controller的合集;

11. @Service

一般用于修饰service层的组件;

12. @Repository

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

13. @RequestMapping

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

14. @ResponseBody

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

15. @Value

注入 application.properties 或 application.yml 配置的属性的值;该注解用于从配置文件中读取属性值。通过该注解,我们可以将一些不变的属性值,如数据库连接信息、端口号等,放在配置文件中,方便后续修改和管理。

@Component
public class MyComponent {
    @Value("${my.property}")
    private String myProperty;

    // ...
}

16. @PathVariable

路径变量,参数与大括号里的名字一样要相同;

17. @Profiles

Spring Profiles 提供了一种隔离应用程序配置的方式,并让这些配置只能在特定的环境下生效。任何@Component或@Configuration都能被@Profile标记,从而限制加载它的时机;

18. @ConfigurationProperties

批量注入配置文件中的属性,Spring Boot将尝试校验外部的配置,默认使用JSR-303(如果在classpath路径中)。可以为@ConfigurationProperties 类添加JSR-303 javax.validation约束注解;

19. @ControllerAdvice

包含@Component,可以被扫描到,统一处理异常;

20. @ExceptionHandler(Exception.class)

用在方法上面,表示遇到这个异常就执行以下方法;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值