首页 > 其他分享 >SpringBoot常用注解

SpringBoot常用注解

时间:2023-04-14 21:37:07浏览次数:39  
标签:常用 SpringBoot 实例 用于 组件 注解 方法

本文整理了SpringBoot常用注解,主要讲解这些注解的用法,并附上一致思维导图。

SpringBoot常用注解


组件相关注解

@Controller

用于修饰MVC中controller层的组件,SpringBoot中的组件扫描功能会识别到该注解,并为修饰的类实例化对象,通常与@RequestMapping联用,当SpringMVC获取到请求时会转发到指定路径的方法进行处理。

@Service

用于修饰service层的组件,service层组件专注于系统业务逻辑的处理,同样会被组件扫描并生成实例化对象。

@Mapper

用于修饰dao层的组件,dao层组件专注于系统数据的处理,例如数据库中的数据,同样会被组件扫描并生成实例化对象。

@Component

用于修饰SpringBoot中的组件,会被组件扫描并生成实例化对象。@Controller@Service@Repository都是特殊的组件注解。

@RestController

用于表示controller层的组件,是@Controller的衍生注解,包括了@Controller和@ResponseBody。相当于在controller层每个请求处理方法上都添加了@ResponseBody注解,这些方法都将返回JSON格式数据。


依赖注入注解

@Autowired

会根据对象的类型自动注入依赖对象,默认要求注入对象实例必须存在且只有一个实例,可以配置required=false来注入不一定存在的对象。

@Resource

默认会根据对象的名称自动注入依赖对象,如果想要根据类型进行注入,可以设置属性为type = 对象名.class

@Qualifier

当同一个对象有多个实例可以注入时,使用@Autowired注解无法进行注入,这时可以使用@Qualifier注解指定实例的名称进行精确注入。

@Primary

当同一个对象有多个实例时,优先选择该实例。


实例相关注解

@Bean

用于修饰方法,标识该方法会创建一个Bean实例,并交给Spring容器来管理。

@Scope

用于声明一个SpringBean实例的作用域,作用域的范围有以下几种:

  • singleton:单例模式,在Spring容器中该实例唯一。(单例,默认)
  • prototype:原型模式,每次使用实例都将重新创建。(非单例)
  • request:在同一请求中使用相同的实例,不同请求重新创建。
  • session:在同一会话中使用相同的实例,不同会话重新创建。
  • application:在同一应用内使用相同的实例,不同应用重新创建。

SpringMVC相关注解

@RequestMapping

可用于将Web请求路径映射到处理类的方法上,当作用于类上时,可以统一类中所有方法的路由路径,当作用于方法上时,可单独指定方法的路由路径。

method属性可以指定请求的方式,如GET、POST、PUT、DELETE等。

@GetMapping

用于表示GET请求方法,等价于@RequestMapping(method = RequestMethod.GET)

@PostMapping

用于表示POST请求方法,等价于@RequestMapping(method = RequestMethod.POST)

@PutMapping

用于表示PUT请求方法,等价于@RequestMapping(method = RequestMethod.PUT)

@DeleteMapping

用于表示DELETE请求方法,等价于@RequestMapping(method = RequestMethod.DELETE)

@RequestBody

表示方法的请求参数为JSON格式,从Body中传入,将自动绑定到方法参数对象中。

@ResponseBody

表示方法将返回JSON格式的数据,会自动将返回的对象转化为JSON数据。

@RequestParam

用于将方法的参数与Web请求的传递的参数进行绑定。

@PathVariable

用于接收请求路径中的参数。

@RequestPart

用于接收文件上传中的文件参数,通常是multipart/form-data形式传入的参数。


配置相关注解

@Configuration

用于声明一个Java形式的配置类,在该类中声明的Bean等配置将被SpringBoot的组件扫描功能扫描到。

@EnableAutoConfiguration

启用SpringBoot的自动化配置,会根据你在pom.xml添加的依赖和application.yml中的配置自动创建你需要的配置。

@ComponentScan

启用SpringBoot的组件扫描功能,将自动装配和注入指定包下的Bean实例。

@SpringBootApplication

用于表示SpringBoot应用中的启动类,相当于@SpringBootConfigurationn@EnableAutoConfiguration@ComponentScan三个注解的结合体。

@Value

用于注入在配置文件application.yml中配置好的属性

@ConfigurationProperties

用于批量注入外部配置,以对象的形式来导入指定前缀的配置

@Conditional

用于表示当某个条件满足时,该组件或Bean将被Spring容器创建,下面是几个常用的条件注解。

  • @ConditionalOnBean:当某个Bean存在时,配置生效。
  • @ConditionalOnMissingBean:当某个Bean不存在时,配置生效。
  • @ConditionalOnClass:当某个类在Classpath存在时,配置生效。
  • @ConditionalOnMissingClass:当某个类在Classpath不存在时,配置生效。

全局异常处理注解

@ControllerAdvice

常与@ExceptionHandler注解一起使用,用于捕获全局异常,能作用于所有controller中。

@ExceptionHandler

修饰方法时,表示该方法为处理全局异常的方法。


AOP相关注解

@Aspect

用于定义切面,切面是通知和切入点的结合,通过切面就能够描述当前aop程序需要针对于哪个原始方法,在什么时候执行什么样的操作。

@PointCut

定义切点表达式,是匹配连接点的条件,通知仅会在切入点方法执行时被应用。

@Before

表示前置通知(Before),该通知方法会在目标方法调用之前执行,通知描述了切面要完成的工作以及何时执行。

@After

表示后置通知(After),该通知方法会在在目标方法后被执行,无论是否有异常都会执行。

@AfterReturning

表示返回通知(AfterReturning),该通知方法会在在目标方法后被执行,有异常不会执行。

@AfterThrowing

表示异常通知(AfterThrowing),该通知方法会在目标方法发生异常后执行。

@Around

表示环绕通知(Around),该通知方法会将目标方法封装起来,在目标方法调用之前和之后执行自定义的行为。

@Order

用于定义组件的执行顺序,在AOP中指的是切面的执行顺序,value属性越低优先级越高。

测试相关注解

@SpringBootTest

用于指定测试类启用Spring Boot Test功能,默认会提供Mock环境。

@Test

指定方法为测试方法。

标签:常用,SpringBoot,实例,用于,组件,注解,方法
From: https://www.cnblogs.com/hmlon/p/17319996.html

相关文章

  • Docker CLI docker compose create常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • 常用的Git命令及示例
    目录01gitinit:初始化一个空的Git仓库02gitadd将修改添加到Git仓库暂存区03gitcommit将修改提交到Git仓库04gitpull从远程Git仓库拉取最新的代码05gitpush将本地代码推送到远程Git仓库06gitbranch创建和管理Git分支新建分支查看分支删除分支07gitcheckout切......
  • Spring很常用的@Conditional注解的使用场景和源码解析
    你好,我是刘牌!介绍今天要分享的是Spring的注解@Conditional,@Conditional是一个条件注解,它的作用是判断Bean是否满足条件,如果满足条件,则将Bean注册进IOC中,如果不满足条件,则不进行注册,这个注解在SpringBoot中衍生出很多注解,比如@ConditionalOnProperty,@ConditionalOnBean,@Conditi......
  • 前端常用/不常用插件【想起来才会去更新】
    maptalks支持2d/3d地图渲染及操作,maptalks可支持1w左右图形渲染(再多了就会有一点点卡,和电脑性能也有关系)官网:www.maptalks.org 组件中的组件maptalks.three:可支持three及一些简单数据样式,具体的还没用过maptalks.snap:绘制图形可贴边操作maptalks.arcgistilelayerarcgis......
  • Hadoop - HDFS常用命令
      “hadoopfs(hdfsdfs)文件操作” #查看目录hdfsdfs-ls/#查看目录下所有文件hdfsdfs-ls-R/#创建目录hdfsdfs-mkdir-p/source/data#查看文件或目录大小hdfsdfs-du-h/source#改变文件权限hdfsdfs-chmod-R777/source/data#改变文件......
  • 【Linux】 apt常用安装命令
    在Ubuntu下,apt-get近乎是最常用的shell命令之一了,因为他是Ubuntu通过新立得安装软件的常用工具命令。本文列举了常用的APT命令参数:sudoapt-getcheck#检查是否有损坏的依赖sudoapt-getupdate #更新源sudoapt-getupgrade#更新已安装的包apt-getso......
  • Linux常用命令-个人使用
    Linux常用命令-个人使用本人在centos下常用的命令,其他系统机器不确定是否可以使用1.nmtui命令启动界面改IP信息首先要启动NetworkManager服务,然后运行nmtui命令就可以手动配置网卡信息,贼好用运行nmtui命令2.ls根据文件大小排序ll-hS|grep^-只显示文件且按文件大小......
  • SpringBoot 整合 MongoDB
    SpringBoot整合MongoDB好久没搞SpringBoot相关的东西勒,但最近看的代码涉及到了这部分,虽然之前没做过也能看懂,但还是从基础开始搞起比较好。准备工作SpringBoot项目创建这个本来都不用说的,SpringBoot创建项目还能不会啊,但因为某些限制,现在用不了专业版IDEA,只能用社区版,......
  • springboot打成jar包resources下文件的获取
    importorg.apache.poi.util.IOUtils;importorg.springframework.boot.system.ApplicationHome;importorg.springframework.core.io.ClassPathResource;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream......
  • Springboot集成MongoDB存储文件、读取文件
    一、前言和开发环境及配置可以转载,但请注明出处。  之前自己写的SpringBoot整合MongoDB的聚合查询操作,感兴趣的可以点击查阅。https://www.cnblogs.com/zaoyu/p/springboot-mongodb.html 使用mongodb存储文件并实现读取,通过springboot集成mongodb操作。 可以有两种实现......