Spring框架常用注解

article/2025/9/12 23:52:38

在这里插入图片描述

Spring常用注解

在这里插入图片描述


@Controller

@Controller 用来响应页面,表示当前的类为控制器。
在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。在SpringMVC 中提供了一个非常简便的定义Controller 的方法,你无需继承特定的类或实现特定的接口,只需使用@Controller 标记一个类是Controller ,然后使用@RequestMapping 和@RequestParam 等一些注解用以定义URL 请求和Controller 方法之间的映射,这样的Controller 就能被外界访问到。此外Controller 不会直接依赖于HttpServletRequest 和HttpServletResponse 等HttpServlet 对象,它们可以通过Controller 的方法参数灵活的获取到。
@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解。@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器。单单使用@Controller 标记在一个类上还不能真正意义上的说它就是SpringMVC 的一个控制器类,因为这个时候Spring 还不认识它。那么要如何做Spring 才能认识它呢?这个时候就需要我们把这个控制器类交给Spring 来管理。


@RestController

Spring4之后新加入的注解,原来返回json需要@ResponseBody和@Controller配合,表明当前类是控制器且返回的是一组数据,不是页面。@RestController是@ResponseBody和@Controller的组合注解,推荐直接使用@RestController注解来处理http请求。

@RestController
public class HelloController {@RequestMapping(value="/hello",method= RequestMethod.GET)public String sayHello(){return "hello";}
}
@Controller
@ResponseBody
public class HelloController {@RequestMapping(value="/hello",method= RequestMethod.GET)public String sayHello(){return "hello";}
}

@Autowired

@Autowired的作用是将其他的接口引入,类似于之前的类的初始化等,用这个注解,类中或接口的方法就可以直接调用了。
@Autowired顾名思义,就是自动装配,其作用是为了消除代码Java代码里面的getter/setter与bean属性中的property。当然,getter看个人需求,如果私有属性需要对外提供的话,应当予以保留。
@Resource的作用相当于@Autowired


@ResponseBody

作用: 该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。当返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)时使用。


@RequestMapping (配置url映射)

@RequestMapping如果没有指定请求方式,将接收Get,Post,Head,Options等所有的请求方式。
@RequestMapping此注解即可以作用在控制器的某个方法上,也可以作用在此控制器类上。当前台界面调用Controller处理数据时候告诉控制器怎么操作有3种情形:
1.当控制器在类级别上添加@RequestMapping注解时,这个注解会应用到控制器的所有处理器方法上。处理器方法上的@RequestMapping注解会对类级别上的@RequestMapping的声明进行补充。
2.@RequestMapping作用在处理器方法上。
3.@RequestMapping同时作用在类级别处理器方法上。
在这里插入图片描述
所响应的url=localhost:8080/updata_setting/updata


@RequestMapping注解属性

作用:简化常用的HTTP方法的映射,并更好地表达被注解方法的语义。
RequestMapping注解有六个属性:
1、 value, method;

value: 指定请求的实际地址,指定的地址可以是URI Template 模式(后面将会说明);

method: 指定请求的method类型, GET、POST、PUT、DELETE等;常用: GET、POST
组合注解:

  • @GetMapping @RequestMapping(method = RequestMethod.GET)的简写
    作用:对应查询,表明是一个查询URL映射
  • @PostMapping @RequestMapping(method =RequestMethod.POST)的简写
    作用:对应增加,表明是一个增加URL映射
  • @PutMapping@RequestMapping(method = RequestMethod.PUT)的简写
    作用:对应更新,表明是一个更新URL映射
  • @DeleteMapping @RequestMapping(method = RequestMethod.DELETE)的简写
    作用:对应删除,表明是一个删除URL映射

2、consumes,produces

consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;

produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;

3、params,headers

params: 指定request中必须包含某些参数值是,才让该方法处理。

headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。


@PathVaribale

通过@PathVariable注解来获取URL中的参数时的前提条件是我们知道url的格式时怎么样的。只有知道url的格式,我们才能在指定的方法上通过相同的格式获取相应位置的参数值。
1.获取url中的单个参数(如id)

@RestController
public class HelloController {@RequestMapping(value="/hello/{id}",method= RequestMethod.GET)public String sayHello(@PathVariable("id") Integer id){return "id:"+id;}
}

2.获取url有多个参数

@RestController
public class HelloController {@RequestMapping(value="/hello/{id}/{name}",method= RequestMethod.GET)public String sayHello(@PathVariable("id") Integer id,@PathVariable("name") String name){return "id:"+id+" name:"+name;}
}

@RequestParam

作用:获取请求参数的值
@RequestParam注解给允许用户不输入参数时,使用默认值;
在这里插入图片描述

@RequestBody

如果传输的是单层json对象,我们后台可以直接用 @RequestParam接收。如果传输的是多层嵌套json对象,这个时候会就会出现数据丢失问题,@ResponseBody很好的解决了这个问题,它会把前台传输过来的json转化为后台对应的对象;
@RequestBody接收的是一个Json对象的字符串,而不是一个Json对象。(易出错)然而在ajax请求往往传的都是Json对象,用JSON.stringify(data)的方式就能将对象变成字符串。同时ajax请求的时候也要指定dataType: “json”,contentType:“application/json” 这样就可以轻易的将一个对象或者List传到Java端,使用@RequestBody即可绑定对象或者List。

var vm = new Vue({el: '#updata',data: {updata_setting: {}},methods: {Save:function(ev){var url = "../updata_setting/updata";$.ajax({type: "POST",url: url,data: JSON.stringify(vm.updata_setting),success: function(r){alert('操作成功!');}});}}
});

@Service

用于标注业务层组件,位于service实现层:
形如:@Service(“xxxService”)
在这里插入图片描述


@Override

@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处:
1、可以当注释用,方便阅读。
2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错。比如你如果没写@Override而你下面的方法名又写错了,这时你的编译器是可以编译通过的(它以为这个方法是你的子类中自己增加的方法)。


@Repository

@Repository用于标注数据访问组件,即dao层
在这里插入图片描述
如果 Web 应用程序采用了经典的三层分层结构的话,最好在持久层、业务层和控制层分别采用上述注解对分层中的类进行注释。@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。


END


http://chatgpt.dhexx.cn/article/3tPB5GjP.shtml

相关文章

浅谈我对spring框架的理解

总所周知,java界乃由五大传统框架:1.核心业务层框架(地位不可动摇)spring,2.控制层框架:spring MVC与struts2, 持久层框架:Mybatis,hibernate。 先从spring说起吧,了解过spring的同学…

Spring框架(一):spring框架的简介

一、spring框架的概念 Spring是一个开源轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务…

关于对Spring框架的详解

Spring框架 基本概念Spring的形成主要模块三层架构Spring的优点对于Spring 框架中都用到设计模式: 基本概念 Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务…

【Spring框架】Spring框架介绍

文章目录 Spring框架介绍Spring两大核心技术 Spring的优点Spring体系介绍核心容器数据访问/集成Web页面其他模块 Spring框架介绍 Spring框架是分层的 Java SE/EE 应用 full-stack 全栈式轻量级开源框架,以 IOC(Inverse Of Control:控制反转)和 AOP(Aspe…

【Java】Spring框架

一、Spring简介 简介 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IoC(Inverse Of Control:反转控制)和AOP(Aspect Oriented Programming:面向切面编程)为内核。提供了展现层Spr…

spring框架解析(全)

spring概述 spring容器启动 springIoc控制反转 spring依赖注入 spring事务 spring事件监听 springaop面向切面编程 –AOP用例搭建 –注解配置 Spring AOP详解 –Transactional注解 spring注解大全 spring概述 spring是一个轻量级的容器,用于管理业务相关对象的。其两…

Spring框架学习

Spring框架 1、Spring框架介绍及搭建 Spring简介(官网:Spring | Home) Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spr…

什么是spring框架?spring特点与好处,使用spring框架的好处是什么.

Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其…

什么是spring框架?spring框架到底有什么用?spring框架到底做了些什么?

什么是spring框架,spring框架究竟有什么用呢?我们可以用spring框架来做些什么呢?这是我今天要说的内容。 当然,百度spring框架会出现一大堆spring框架的介绍,以及IOC和AOP。但是这些官方的语言,看书都有解…

【Spring框架一】——Spring框架简介

系列文章目录 Spring框架简介 系列文章目录前言一、什么是Spring框架?二、Spring框架的优势1.简化开发流程:Spring提供了许多现成的功能,可以使得开发人员在构建应用程序时减少编写重复代码的工作。2.提高可维护性:Spring框架采用…

Spring 框架

Spring 1、概述: Spring是最受欢迎的轻量级的企业级Java应用程序开发框架;Spring框架的 核心特性可以用于开发任何Java应用程序,但是在JavaEE平台上构建Web应 用程序是需要扩展的。Spring框架的目标是使J2EE开发变得更容易使用,通…

Spring框架梳理总结(适合多刷)

目录 前言大纲总结1. 概念详解1.1 IOC与AOP1.2 IOC与DI1.3 接口区别 2. 注入方式2.1 基本类型2.2 复杂类型 3. 配置属性4. 注解注入5. AOP 前言 在看完上一篇文章每个知识点的时候 Spring框架从入门到学精(全) 大部分人对spring还是有些懵懂 可能是知识…

学习Spring框架这一篇就够了

1. spring概述 1.1 Spring是什么(理解) Spring是分层的 Java SE/EE应用 full-stack(全栈的) 轻量级开源框架,以 IOC(Inverse Of Control:控制反转)和 AOP(Aspect Orient…

【QT学习】实现MVC框架的简易封装(一文读懂)

文章目录 前言一、MVC框架简介1.核心部件2.使用目的3.MVC优点 二、具体封装步骤1.文件管理2.创建模型3.创建控制器4.MVC实现(用户登录验证为例) 总结 前言 MVC(Model-View-Controller)框架作为一种软件设计模式,已经被…

MVC框架以及实例

MVC框架 MVC(model,view,controller),一种将业务逻辑、数据、界面分离的方法组织代码的框架。在改进界面及用户交互的同时,不需要重写业务逻辑。MVC将传统的输入、处理和输出分离。 Model:模型,逻辑部分,也是表示应用程序的核心,比…

MVC框架流程图

MVC框架流程图 MVC的概念其实就那么简单,这些概念其实早已深入我们的内心,而我们所缺乏的是将其本质挖掘出来。我们来看看下面这幅图,这是一副流行了很多年的讲述MVC模型的图: 在这幅图中,MVC三个框框各司其职&#x…

了解MVC模式与MVC框架

MVC MVC的概念模型(Model)控制器(Controller)视图(View) MVC工作流程Java MVC框架Struts1框架Struts2框架Spring MVC框架JSF框架Tapestry框架 MVC的概念 MVC全名是Model View Controller,M是指数据模型,V是指用户界面,C是控制器。使用MVC最直…

Qt5 MVC框架

1、MVC 设计模式 起源于smalltalk的一种与用户界面设计相关的设计模式。 作用:实现数据与用户界面分离; 组成:模型model(表示数据)、视图view(表示用户界面)及控制controller(定义了用户在界面上的操作&am…

MVC框架概述

2014.11.8我们完成为时两月的中级软考准备,没有多余的时间去放松、娱乐,紧接着迎来了我进入提高班以来真正的一次项目实践--高效平台。 我做的是基础系统,就是一个算是幕后英雄的角色吧!考试系统、评教系统需要我们的数据、同时新生入学系统由我们来维护,所以说任务艰巨而…

C# .Net MVC框架实现最简单的登陆

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言C#.net实现最简单登陆 一、C#,.net是什么,相比较于C,java二、C# .net创建一个MVC框架工程1.步骤 实现结果 前言 C#.net实现最简单登陆 提示&#…