我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SpringBoot常用注解实例分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SpringBoot常用注解实例分析

这篇文章主要介绍“SpringBoot常用注解实例分析”,在日常操作中,相信很多人在SpringBoot常用注解实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringBoot常用注解实例分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1 概述

IOC 是Spring 最为重要的功能之一,就是将Bean初始化加载到容器中,Bean是如何加载到容器的,可以使用Spring注解方式或者Spring XML配置方式。

简言之,注解本身没有什么业务功能的,和 xml 一样,是一种元数据,元数据即解释数据的数据,这就是所谓配置。

2 常用注解

@Component

表示一个带注释的类是一个“组件”,成为Spring管理的Bean。当使用基于注解的配置和类路径扫描时,这些类被视为自动检测的候选对象。同时@Component还是一个元注解。

SpringBoot常用注解实例分析

所谓元注解,其实就是可以注解到别的注解上的注解,被注解的注解称之为组合注解,组合注解具备其上元注解的功能。

SpringBoot常用注解实例分析

@Service

组合注解(组合了@Component注解),应用在service层(业务逻辑层)。

@Repository

组合注解(组合了@Component注解),应用在dao层(数据访问层)。

@Controller

组合注解(组合了@Component注解),应用在MVC层(控制层),DispatcherServlet会自动扫描注解了此注解的类,然后将web请求映射到注解了@RequestMapping的方法上。

@RequestMapping

用于映射Web请求,包括访问路径和参数。(类或方法上)

@ResponseBody

注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。

注意:在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据。

@RequestBody

将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。

作用:

  • 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;

  • 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。

使用时机

GET、POST方式提时, 根据request header Content-Type的值来判断:

  • application/x-www-form-urlencoded, 可选(即非必须,因为这种情况的数据@RequestParam, @ModelAttribute也可以处理,当然@RequestBody也能处理)。

  • multipart/form-data, 不能处理(即使用@RequestBody不能处理这种格式的数据)

  • 其他格式, 必须(其他格式包括application/json, application/xml等。这些格式的数据,必须使用@RequestBody来处理)

PUT方式提交时, 根据request header Content-Type的值来判断

application/x-www-form-urlencoded, 必须;multipart/form-data, 不能处理;其他格式, 必须

举个例子:

@RequestMapping(value = "user/login")@ResponseBody// 将ajax(datas)发出的请求写入 User 对象中public User login(@RequestBody User user) {   // 这样就不会再被解析为跳转路径,而是直接将user对象写入 HTTP 响应正文中    return user;

@PathVariable

用于接收路径参数,比如@RequestMapping(“/hello/{name}”)申明的路径,将注解放在参数中前,即可获取该值,通常作为Restful的接口实现方法。

@RestController

该注解为一个组合注解,相当于@Controller和@ResponseBody的组合,注解在类上,意味着,该Controller的所有方法都默认加上了@ResponseBody。

@ExceptionHandler

用于全局处理控制器里的异常。为什么会有这个注解,原因在于:

  • Exception什么的异常太过广泛,我们直接抛出所有异常信息,对用户而言是非常不友好的。

  • 在事务管理里,如果我们自定义的异常继承的是Exception,则事务无效。如果我们是继承RuntimeException,则不会出现这个问题。

@ModelAttribute

本来的作用是绑定键值对到 Model 里,在 @ControllerAdvice 中是让全局的@RequestMapping都能获得在此处设置的键值对。

@Autowired

可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作,@Autowired标注可以放在成员变量上,也可以放在成员变量的set方法上,也可以放在任意方法上表示,自动执行当前方法,如果方法有参数,会在IOC容器中自动寻找同类型参数为其传值。

注意:@Autowired是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Qualifier使用;

@Configuration

声明当前类是一个配置类(相当于一个Spring配置的xml文件)。

@Bean

注解在方法上,声明当前方法的返回值为一个Bean。返回的Bean对应的类中可以定义init()方法和destroy()方法,然后在@Bean(initMethod=”init”,destroyMethod=”destroy”)定义,在构造之后执行init,在销毁之前执行destroy。

@ComponentScan

自动扫描指定包下所有使用@Service、@Component、@Controller、@Repository的类并注册。

@Aspect

声明一个切面(类上) 使用@After、@Before、@Around定义建言(advice),可直接将拦截规则(切点)作为参数。

  • @After :在方法执行之后执行(方法上)。

  • @Before: 在方法执行之前执行(方法上)。

  • @Around: 在方法执行之前与之后执行(方法上)。

  • @PointCut: 声明切点 在java配置类中使用@EnableAspectJAutoProxy注解开启Spring对AspectJ代理的支持。AspectJ静态编译织入(Aspect for java),他其实是一套独立的面向切面编程的解决方案。Spring中虽然使用了Aspect的Annotation,但是并没有使用它的编译器和织入器。

@Scope

定义我们采用什么模式去创建Bean(方法上,得有@Bean) 其设置类型包括:

  • Singleton (单例,一个Spring容器中只有一个bean实例,默认模式)

  • Prototype(每次调用新建一个bean)

  • Request (web项目中,给每个http request新建一个bean)

  • Session(web项目中,给每个http session新建一个bean)

  • GlobalSession(给每一个 global http session新建一个Bean实例)。

@Scope("prototype")//多实例,IOC容器启动创建的时候,并不会创建对象放在容器在容器当中,当你需要的时候,需要从容器当中取该对象的时候,就会创建。@Scope("singleton")//单实例 IOC容器启动的时候就会调用方法创建对象,以后每次获取都是从容器当中拿同一个对象(map当中)。@Scope("request")//同一个请求创建一个实例@Scope("session")//同一个session创建一个实例

@PostConstruct

标注在方法上,该方法在构造函数执行完成之后执行。

@PreDestory

标注在方法上,该方法在对象销毁之前执行。

@Value

经常与Sping EL表达式语言一起使用,注入普通字符,系统属性,表达式运算结果,其他Bean的属性,文件内容,网址请求内容,配置文件属性值等。

@EnableAsync

配置类中,通过此注解开启对异步任务的支持,叙事性AsyncConfigurer接口。

@Async

在实际执行的bean方法使用该注解来申明其是一个异步任务(方法上或类上所有的方法都将异步,需要@EnableAsync开启异步任务)

@EnableScheduling

在配置类上使用,开启计划任务的支持。

@Scheduled

来申明这是一个任务,包括cron,fixDelay,fixRate等类型。

@Enable*注解说明

这些注解主要用来开启对xxx的支持。 @EnableAspectJAutoProxy 开启对AspectJ自动代理的支持。

  • @EnableAsync: 开启异步方法的支持。

  • @EnableScheduling: 开启计划任务的支持。

  • @EnableWebMvc :开启Web MVC的配置支持。

  • @EnableConfigurationProperties :开启对@ConfigurationProperties注解配置Bean的支持。

  • @EnableJpaRepositories:开启对SpringData JPA Repository的支持。

  • @EnableTransactionManagement:开启注解式事务的支持。

  • @EnableTransactionManagement: 开启注解式事务的支持。

  • @EnableCaching: 开启注解式的缓存支持。

到此,关于“SpringBoot常用注解实例分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SpringBoot常用注解实例分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SpringBoot常用注解实例分析

这篇文章主要介绍“SpringBoot常用注解实例分析”,在日常操作中,相信很多人在SpringBoot常用注解实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringBoot常用注解实例分析”的疑
2023-06-30

Java注解和异常实例分析

今天小编给大家分享一下Java注解和异常实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。注解作用注解是JDK1.5版本
2023-07-02

spring常用注解的示例分析

这篇文章给大家分享的是有关spring常用注解的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1 、将普通类加入容器形成Bean的注解日常开发中主要使用到的定义Bean的注解包括(XML方式配置bean暂
2023-05-30

SpringBoot中异常处理实例分析

这篇文章主要介绍“SpringBoot中异常处理实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot中异常处理实例分析”文章能帮助大家解决问题。一、背景在我们编写程序的过程中,
2023-06-30

Java注解应用实例分析

今天小编给大家分享一下Java注解应用实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.注解的理解1)注解(Anno
2023-07-02

java注解与元注解实例分析

这篇文章主要介绍“java注解与元注解实例分析”,在日常操作中,相信很多人在java注解与元注解实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java注解与元注解实例分析”的疑惑有所帮助!接下来,请跟
2023-06-30

SpringBoot自定义注解之脱敏注解的示例分析

这篇文章将为大家详细讲解有关SpringBoot自定义注解之脱敏注解的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。自定义注解之脱敏注解数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏
2023-06-22

详解SpringBoot的常用注解

详解SpringBoot的常用注解 在SpringBoot中,注解是一种非常重要的编程方式,它可以简化代码,提高开发效率。本文将详细介绍SpringBoot中的常用注解,以及它们的使用方法和场景。 1. @SpringBootApplica
2023-08-20

Spring Ioc和DI注解实例分析

今天小编给大家分享一下Spring Ioc和DI注解实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.Spring配
2023-06-29

Moment.js常见用法实例分析

这篇文章主要介绍“Moment.js常见用法实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Moment.js常见用法实例分析”文章能帮助大家解决问题。Moment.js是一个轻量级的js时间
2023-06-30

Razor常用语法实例分析

本文小编为大家详细介绍“Razor常用语法实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Razor常用语法实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。@using@using 指令用于向生成的
2023-06-29

springboot整合quartz实例分析

这篇文章主要讲解了“springboot整合quartz实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“springboot整合quartz实例分析”吧!一、quartz简介1.Qua
2023-06-29

Python常用技巧实例分析

这篇“Python常用技巧实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python常用技巧实例分析”文章吧。1.字
2023-06-29

php常量使用实例分析

这篇“php常量使用实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php常量使用实例分析”文章吧。常量的使用
2023-06-17

SpringBoot常用注解有哪些

这篇文章给大家分享的是有关SpringBoot常用注解有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。  SpringBoot注解  @SpringBootApplication:开启Spring Boot自
2023-06-02

springBoot自动注入原理的示例分析

这篇文章给大家分享的是有关springBoot自动注入原理的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。@SpringBootApplication注解解读为什么我们的启动类上标注一个@SpringBo
2023-06-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录