springMVC常用注解

2023-05-16

在java框架中,使用注解的作用就是注入属性

一、Spring常用注解

@Component:标注一个普通的Spring Bean类。
@Controller:标注一个控制器组件类。
@Service:标注一个业务层组件类。
@Repository:标注一个dao持久层组件类。

Bean实例的名字默认是Bean类的首字母小写,其他部分不变。

尽量考虑使用@Controller,@Service,@Repository代替通用的@Component。

二、SpringMVC常用注解

@Controller
@RequestMapping
@Resource
@Autowired
@ModelAttribute
@SessionAttributes
@PathVariable
@requestParam
@ResponseBody
@Repository

1、@Controller

** @Controller 声明该类为SpringMVC中的Controller **

控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。在SpringMVC 中使用@Controller ,就无需继承特定的类或实现特定的接口,只需使用@Controller 标记一个类是Controller,然后使用@RequestMapping 和@RequestParam 等一些注解用以定义URL 请求和Controller 方法之间的映射,这样的Controller 就能被外界访问到。

@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解。@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器。单单使用@Controller标记在一个类上还不能真正意义上的说它就是SpringMVC 的一个控制器类,因为这个时候Spring 还不认识它。那么要如何做Spring 才能认识它呢?这个时候就需要我们把这个控制器类交给Spring 来管理。有两种方式:

(1)在SpringMVC 的配置文件中定义MyController 的bean 对象。
(2)在SpringMVC 的配置文件中告诉Spring 该到哪里去找标记为@Controller 的Controller 控制器。

< bean class=“com.host.app.web.controller.MyController”/>

< context:component-scan base-package = “com.host.app.web” />//路径写到controller的上一层(扫描包详解见下面浅析)

2、@RequestMapping

@RequestMapping的作用是建立请求URL和处理方法之间的对应关系
@RequestMapping可以作用在方法和类上

作用在类上:第一级的访问目录
作用在方法上:第二级的访问目录

@RequestMapping的属性

path-指定请求路径的URL
value属性和path属性是一样的
mthod 指定该方法的请求方式
params 指定限制请求参数的条件
headers 发送的请求中必须包含的请求头

3、@Autowired

作用:spring可以自动帮你把bean里面引用的对象的setter/getter方法省略,它会自动帮你set/get。

正常情况下,你在userService里面要做一个userDao的setter/getter方法,但如果你用了@Autowired,你就不需要写getter/setter方法了,只需要在UserService的实现类中声明即可,之所以不用写,秘诀就在于java的“反射机制”。

通常我们都得这么写:

在这里插入图片描述
因为使用了@Autowired注解,上面代码可以简化这样写:

在这里插入图片描述

4、@ResponseBody

作用:@ResponseBody注解通常使用在控制层的方法上,用于将Controller的方法返回的对象,通过springmvc提供的HttpMessageConverter接口转换为指定格式的数据如:json、xml等,通过Response响应给客户端。

假如是字符串则直接将字符串写到客户端;假如是一个对象,此时会将对象转化为json串然后写到客户端。这里需要注意的是,如果返回对象,按utf-8编码。如果返回String,页面可能出现乱码。因此在注解中我们可以手动修改编码格式,例如@RequestMapping(value="/cat/query",produces=“text/html;charset=utf-8”),前面是请求的路径,后面是编码格式。

在这里插入图片描述

5、@RequestBody

作用:用于获取请求体的内容

/**
* 接收请求
*/
@RequestMapping(path="/hello")
public String sayHello(@RequestBody String body) {
    System.out.println("aaaa");
    System.out.println(body);
    return "success";
}
发布于 2019-11-26

引用来源:https://zhuanlan.zhihu.com/p/93726363.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springMVC常用注解 的相关文章

  • Git 命令行学习笔记( 图解 )

    Git 官网 分布式版本控制工具 可以团队协作合作开发 代码合并等 github 和 国产 码云gitee 都是代码托管工具就是远程仓库 下载可以去官网或者去腾讯软件中心下载 官网有时候下载很慢 腾讯软件中心 如果有腾讯电脑管家直接管家下载
  • Laravel安装与初始化

    下载Laravel 使用 composer 安装 首先composer切换成中国镜像 下载更快 composer config g repo packagist composer https packagist phpcomposer co
  • 虚拟机安装Centos图文安装教程

    清华大学开源软件镜像站 Tsinghua Open Source Mirror 清华镜像 http mirrors aliyun com 阿里云镜像 vm虚拟机下载 VMware虚拟机中文版官方下载 虚拟机 华军软件园 虚拟机 安装 错误1
  • 虚拟机LNMP图文安装教程(一)

    xshell 链接虚拟机 centos 7 ip addr 查看本地IP地址 安装LNMP LNMP 官网 LNMP一键安装包 CentOS RadHat Debian Ubuntu下自动编译安装Nginx PHP MySQL PHPMyA
  • 虚拟机LNMP操作记录(二)

    netstat nltp 查看当前端口 LNMP php多版本 lnmp文件目录里 运行 install sh mphp MySQL连接 更换环境变量的PHP版本 cd usr bin ll grep php rm rf php php f
  • Deep Learning 最优化方法之Momentum(动量)

    本文是Deep Learning 之 最优化方法系列文章的Momentum xff08 动量 xff09 方法 主要参考Deep Learning 一书 整个优化系列文章列表 xff1a Deep Learning 之 最优化方法 Deep
  • phpStudy redis设置密码

    使用框架 链接redis时 xff0c 报错 xff1a AUTH 96 failed ERR Client sent AUTH but no password is set tcp 127 0 0 1 6379 解决方案一 xff1a 解
  • Swoole小练习之Tcp传输

    话不多说直接上代码 注意 我使用的端口都是一台服务器上的 具体实现应该是跨服务器的 通过Tcp传输 客户端 同步客户端 client 61 new Swoole Client SWOOLE SOCK TCP if client gt con
  • php workerman入门之运行起来

    如果你有服务器的话可以使用服务器操作或者学习 如果没有请安装一个虚拟机并安装php环境 可以参考我之前的文章 Windows安装虚拟机图文安装教程 山山河川的博客 CSDN博客 虚拟机LNMP图文安装教程 一 山山河川的博客 CSDN博客
  • php workerman入门之搭建websocket服务

    依旧参考官网 简单的开发示例 workerman手册 示例二 lt php use Workerman Worker use Workerman Connection TcpConnection require once DIR vendo
  • workerman+TP6实战网站客服系统之项目初始化

    TP6 官方手册 安装 ThinkPHP6 0完全开发手册 看云 安装TP6 composer create project topthink think tp6 nbsp 报错 nbsp 解决问题 PHP默认把这个 proc open 函
  • 虚拟机LNMP操作记录(三)

    nginx配置多站点之端口访问 查看nginx conf文件 lnmp 已经默认添加了引入vhost下所有文件的准备 复制server里面的内容 server listen 80 default server reuseport liste
  • workerman+TP6实战网站客服系统之前端页面部署

    前端演示效果 主攻后端和workman所以本次前端页面比较简单 后续会有聊天高级版的教程敬请期待 Layui下载 Layui 经典开源模块化前端 UI 组件库 nbsp nbsp 粘贴到tp6项目里面 nbsp 然后创建模板页面
  • PHP多进程(一)之pcntl_fork

    知识来源 nbsp nbsp nbsp nbsp 知识无价 拒绝白嫖 Linux下PHP多进程编程 共44课时 PHP课程 51CTO学堂 多进程的作用是一个程序启动多个进程 一个程序启动起来本应该是一个进程 但它可作为父进程启动多个子进程
  • PHP多进程(二)之pcntl_wait

    知识来源 nbsp nbsp nbsp nbsp 知识无价 拒绝白嫖 Linux下PHP多进程编程 共44课时 PHP课程 51CTO学堂 上篇文章我们说到父进程应该回收子进程结束之后产生的数据 这样才会不浪费系统资源 一个程序启动之后 变
  • PHP前后分离接口加密探讨( AES+RSA )

    参考文章 php之RSA加密解密 小吴 斌的博客 CSDN博客 php rsa加密 RSA和AES的区别 LC超人在良家的博客 CSDN博客 aes rsa PHP实现非对称加密的方法 私钥及公钥加密解密的方法 php 公钥 私钥 Lord
  • Deep Learning 最优化方法之RMSProp

    本文是Deep Learning 之 最优化方法系列文章的RMSProp方法 主要参考Deep Learning 一书 整个优化系列文章列表 xff1a Deep Learning 之 最优化方法 Deep Learning 最优化方法之S
  • PHP多进程(三) 理解多进程

    知识来源 nbsp nbsp nbsp nbsp 知识无价 拒绝白嫖 Linux下PHP多进程编程 共44课时 PHP课程 51CTO学堂 本篇是一个过渡篇 重在理解多进程 以及进程执行过程和进程执行后的数据 nbsp 废话不多说直接上代码
  • 深入springboot原理——一步步分析springboot启动机制(starter机制)

    前言 使用过springboot的同学应该已经知道 xff0c springboot通过默认配置了很多框架的使用方式帮我们大大简化了项目初始搭建以及开发过程 本文的目的就是一步步分析springboot的启动过程 xff0c 分析sprin
  • dependencies和dependencyManagement区别

    文章目录 dependenciesdependencyManagement使用场景 区别 xff1a 总结 xff1a dependencies 父项目中的dependencies xff0c 子项目都会自动引入 xff0c 默认被所有的子

随机推荐

  • 【Git】解决Ctrl+V无法粘贴文本的问题

    解决Ctrl 43 V无法粘贴文本的问题 问题 xff1a 在我们使用Git Bash将项目克隆至本地时 xff0c 经常需要复制网址 xff0c 但此时却出现问题 xff1a Ctrl 43 V无反应 或是如下图只有 V xff1a 解决
  • 操作系统引导(开机过程)

    操作系统安装在C盘中 xff0c 其一步步启动的过程如下 xff1a 操作系统要启动 xff0c 操作系统的数据需要先被放入主存里 如图所示 xff0c 计算机的主存由RAM和ROM组成 xff0c ROM芯片被集成在电脑主板上 xff0c
  • igh ethercat master及简单介绍

    接触ethercat也有一段时间了 xff0c 做些小总结吧 1 xff0c 关于ethercat ethercat是基于工业以太网的一种总线协议 我接触的igh ethercat master for linux是以用ethercat协议
  • Linux下IGH Ethercat Master安装

    引言 简单igh ethercat master安装 1 xff0c 准备工作 xff08 1 xff09 一个Linux系统 xff0c 在虚拟机里面也可以 xff0c 不过如果在虚拟机里面需要一些其他的设置 xff0c 这个最后再说 L
  • 在树莓派/4.x内核下安装IgH EtherCAT master主站

    树莓派安装ethercat主站 环境 xff1a 4 14 91 rt49 v7 下载源码 xff0c 解压 tar xvf ethercat 1 5 2 tar bz2 cd ethercat 1 5 2 configure enable
  • C语言中static修饰函数和变量用法

    static修饰函数 xff0c 局部变量和全局变量的用法 在c语言中static关键字可以修饰函数和变量 修饰变量又可以分为修饰全局变量和局部变量 static作用是限定变量的生命周期 xff0c 限定变量或函数的作用域 写在前面 xff
  • SOEM控制io超简洁程序

    SOEM控制io超简洁程序 我想用SOEM简单控制io模块 xff0c 因为我的io模块每个出入输出旁边都会有一个小灯 xff0c 所以这也算是点灯程序 xff0c 但是我看了例子并不知道怎么修改 xff0c 都说igh麻烦 xff0c 我
  • Deep Learning 最优化方法之Adam

    本文是Deep Learning 之 最优化方法系列文章的Adam方法 主要参考Deep Learning 一书 整个优化系列文章列表 xff1a Deep Learning 之 最优化方法 Deep Learning 最优化方法之SGD
  • SOEM控制伺服电机

    我只完成了pv模式 xff0c 对于csp模式我不知道是哪里出现了问题 xff0c 有知道的可以在下方评论 这个代码我的pv模式可以正常运行和控制电机 xff0c csp模式可以使能电机 xff0c 但是电机不转 span class to
  • c语言常用的打印/输出函数

    c语言中除了最开始接触的printf 函数 xff0c 还经常遇到其他函数 xff0c sprintf printk fprintf 等 1 xff0c printf 这个函数应该是用的最多的 xff0c 或者是最先接触的 xff0c 至少
  • stm32f103介绍

    完整学习一遍stm32开发板开发 xff0c 并打算坚持一直写笔记 这是第一课 xff0c stm32的介绍 1 什么是STM32 从字面意义来看 xff1a ST xff1a 意法半导体 xff0c 是一个公司的名字 M xff1a Mi
  • 数据结构之单链表操作

    数据结构 xff0c 单链表操作 xff0c 本来应该三年前就应该会的 xff0c 奈何上学的时候呼呼睡大觉 xff0c 最近看代码又接触到了 xff0c 花了几天时间自己重新写了一下 链表操作应该是基础的 xff0c 并且需要会的 xff
  • igh etherlab主站介绍

    一 xff0c 简单介绍 目前用的最多的开源ethercat主站是igh和soem xff0c igh主站功能更多 xff0c 结构较为复杂 xff1b soem功能相对没有那么完善 xff0c 实现更为简单一些 使用场景 xff1a 主站
  • U盘变小恢复方法

    在使用中经常由于使用不当 xff0c 导致u盘空间变小 xff0c 比如像我现在的情况 xff0c 我本来u盘是32G的 xff0c 现在显示只有三个多G xff0c 格式化之后还是这样 解决步骤如下 xff0c 不需要下载工具 1 xff
  • VirtualBox 中运行 CentOS 7 鼠标切换

    在 VirtualBox 中运行 CentOS 7 虚拟机时 xff0c 有时鼠标可能会被捕捉 xff0c 导致无法在虚拟机和主机之间切换 以下是如何在 VirtualBox 中实现与 CentOS 7 鼠标切换的步骤 xff1a 首先 x
  • C++11 生产者消费者模型

    C 43 43 11 生产者消费者模型 线程互斥 lock guard 使用lock guard管理互斥锁 在退出作用域后进行析构时就会自动解锁 xff0c 从而保证了互斥量的正确操作 xff0c 避免忘记 unlock 操作而导致线程死锁
  • PS照片处理尺寸参考表

    参考表 一 讲多少寸 xff0c 是指长边的英寸数 xff0c 比如5 x 3 5就是5寸 讲多少R xff0c 指短边的英寸数 xff0c 比如4R是6 X 4寸 xff0c 而3R就是5寸的5 X 3 5寸 R 的意思的 rectang
  • 数据库习题及答案5

    模拟测验1 一 1 2 3 4 5 6 7 8 9 10 A D C c D A C A A C 一 选择题 xff08 在每个小题四个备选答案中选出一个正确答案 xff0c 填在题末的括号中 xff09 xff08 本大题共10小题 xf
  • Attention Model(mechanism) 的 套路

    最近刷了一些attention相关的paper 照着here的列表 43 自己搜的paper xff0c 网上相关的资料也有很多 xff0c 在此只讲一讲自己对于attention的理解 xff0c 力求做到简洁明了 一 attention
  • springMVC常用注解

    在java框架中 xff0c 使用注解的作用就是注入属性 一 Spring常用注解 64 Component xff1a 标注一个普通的Spring Bean类 64 Controller xff1a 标注一个控制器组件类 64 Servi