当前位置: 首页 > news >正文

Java主流开发框架之请求响应常用注释

1.@RestController

标记一个类为 REST 控制器,处理 HTTP 请求并直接返回数据(如 JSON/XML),而不是视图(如 HTML),一般是放在类的上边

@RestController
public class UserController {@GetMapping("/hello") //后续GetMapping过多可以写一个共有的路径在类的外边public String hello() {return "Hello, World!";}
}

2.@RequestMapping

用于将 HTTP 请求映射到特定的处理方法(Controller 方法),指定请求的URL路径,定义 HTTP 方法类型(GET、POST 等),路径一般和下面的方法名相同

//数组参数
@RestController
@RequestMapping("/url")
public class array {@RequestMapping("/array")public String array(String[] hobby) {System.out.println(Array.toString(hobby));return "OK";}
}

3.@RequestParam

用于绑定 HTTP 请求参数到控制器方法参数的注解,通常用于处理 URL 中的查询参数。如果方法形参和请求参数名称不匹配,可以使用该注解。
提取请求参数:从 URL 查询字符串(如  /user?id=123 )或表单数据中获取值。
参数绑定:将参数值自动转换为方法参数的类型(支持基本类型、对象、集合等)。
验证与默认值:支持参数必填性检查和默认值设置。

//集合参数
@RestController
@RequestMapping("/url")
public class array {@RequestMapping("/list")public String list(@RequestParam List<String> hobby) {System.out.println(hobby);return "OK";}
}//设置默认值
public Result page(@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "1") Integer pageSize){...}

4.@DateTimeFormat

用于处理日期和时间类型参数绑定的注解,主要用于将字符串格式的请求参数。
指定日期格式:定义字符串与日期对象的转换规则。
支持多种类型:兼容  java.util.Date 、 java.time.* (JSR-310)等日期/时间类。
自动类型转换:Spring 在绑定请求参数时自动应用格式规则。(pattern="yyyy-MM-dd HH:mm:ss"

@RequestMapping("/dataParm")
public String dataParam(@(DataTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")LocalDataTime updataTime){System.out.println(updataTime);return "OK";}

5.@RequestBody

一般绑定到方法的参数前,用于接收客户端发送的JSON、XML 等数据动转换封装为 Java的实体对象。
数据绑定:将请求体内容(如 JSON)反序列化为 Java 对象。
支持多种格式:通过  HttpMessageConverter  处理 JSON(默认)、XML、表单等数据格式。

@RequestMapping("/jsonParam")
public String jsonParam(@RequestBody User user){System.out.println(user);return "ok";
}Public class User{private String name;private Integer age;...
}
//json格式数据:
{"name":"jack""age":"16"...
}

6. @PathVariable  

用于从 URI 模板中提取变量值并绑定到方法参数的注解。
提取路径变量:从 URL 的占位符(如  /user/{id} )中获取动态值。
类型自动转换:将字符串形式的路径变量转换为方法参数类型(如  String  →  Long )。

@GetMapping("/user/{id}")
public User getUser(@PathVariable Long id) {// 根据 id 查询用户return userService.findById(id);
}

7.@Resource

依赖注入,给对象的属性注入数据,可以定义在字段上,也可以定义在方法上。一般用在注入dao层数据源,跟@Autowired相似,区别就是@Autowired默认是先根据类型,而@Resource默认是先根据名称

三层架构(Controller-Service-Dao)

8.@Autowired 

运行时,IOC容器会提供该类型的Bean对象,并赋值给该容器

9.@Service

标记一个类作为服务层,交给IOC容器管理,成为IOC容器的bean对象(成为Spring容器管理的Bean),可以通过依赖注入(如 @Autowired)在其他地方使用它,service运行的时候依赖Dao层,需要IOC容器提供

@RestController
Public class EmpController{@Autowired //运行时,IOC容器会提供该类型的Bean对象,并赋值给该容器(依赖注入)private EmpService empservice;...
}

10.@Component

交给IOC容器管理,成为IOC容器的bean对象,Controller运行的时候依赖Service层,需要IOC容器提供

@Component
public class EmpServiceA implements EmpService{@Autowried //运行时,IOC容器会提供该类型的Bean对象,并赋值给该容器(依赖注入)private EmpDao empdao;...
}@Component
public class EmpDaoA implements EmpDao{...}

相关文章:

Java主流开发框架之请求响应常用注释

1.RestController 标记一个类为 REST 控制器&#xff0c;处理 HTTP 请求并直接返回数据&#xff08;如 JSON/XML&#xff09;&#xff0c;而不是视图&#xff08;如 HTML&#xff09;&#xff0c;一般是放在类的上边 RestController public class UserController {GetMapping…...

go的参数传递都是值传递,但切片需要注意

根据之前学习python和java的经验&#xff0c;每次学习一门新语言时&#xff0c;一定要搞清楚方法的参数传递是值传递&#xff0c;引用传递还是指针传递。 主要原因就是需要知道&#xff0c;某种类型的数据传递给某个方法后&#xff0c;方法里面对它的修改是否会影响到这个数据本…...

C++菜鸟教程 - 从入门到精通 第五节

一.各种排序 接下来,让我们开始学习排序! 1.选择排序 a.原理简介 选择排序&#xff08;Selection Sort&#xff09;是一种简单直观的排序算法。它的基本思想是每次从未排序的部分中选择最小&#xff08;或最大&#xff09;的元素&#xff0c;将其放到已排序部分的末尾&#xff…...

同一个局域网的话 如何访问另一台电脑的ip

在局域网内访问另一台电脑&#xff0c;可以通过以下几种常见的方法来实现&#xff1a; ‌直接通过IP地址访问‌&#xff1a; 首先&#xff0c;确保两台电脑都连接在同一个局域网内。获取目标电脑的IP地址&#xff0c;这可以通过在目标电脑上打开命令提示符&#xff08;Windows系…...

[学习笔记]攻防世界-bug

打开场景&#xff0c;提示我们需要登陆 我们先注册一下 注册成功 我们登陆进去 我们点击Manage他提示我们admin才能进入 我们刷新抓包一下试试 Cookie里面除了PHPSESSID&#xff0c;多出来了一个user&#xff0c;看上去是md5加密的&#xff0c;我们尝试解密 这里尝试了好几个网…...

[250324] Kafka 4.0.0 版本发布:告别 ZooKeeper,拥抱 KRaft!| Wine 10.4 发布!

目录 Kafka 4.0.0 版本发布&#xff1a;告别 ZooKeeper&#xff0c;拥抱 KRaft&#xff01;Wine 10.4 发布&#xff01; Kafka 4.0.0 版本发布&#xff1a;告别 ZooKeeper&#xff0c;拥抱 KRaft&#xff01; 近日&#xff0c;Apache Kafka 4.0.0 正式发布&#xff01;这是一个…...

【赵渝强老师】达梦数据库MPP集群的架构

为了支持海量数据存储和处理等方面的需求&#xff0c;为高端数据仓库提供解决方案&#xff0c;达梦数据库提供了大规模并行处理MPP架构&#xff0c;以极低的成本代价&#xff0c;提供高性能的并行计算。通过使用MPP可以解决以下问题&#xff1a; 需要较高的系统性能支持以支持…...

JWT 鉴权常见知识点及参考答案

JWT 鉴权常见知识点及参考答案 最近在 Go Web 项目当中使用到了 JWT 进行鉴权&#xff0c;因此通过这篇文章对 JWT 的原理及相关的知识点进行总结。 文章目录 JWT 鉴权常见知识点及参考答案JWT 签名算法的详细工作流程一. 签名的生成过程二. 签名的验证过程 1. 什么是 JWT&am…...

洛谷题单入门4-P5729 【深基5.例7】工艺品制作-python

输入格式 第一行三个正整数 w,x,h。 第二行一个正整数 q。 接下来 q 行&#xff0c;每行六个整数 输出格式 输出一个整数表示答案。 三维数组直接标记 class Solution:staticmethoddef oi_input():"""从标准输入读取数据"""w, x, h map(…...

【C语言】内存函数详解

个人主页 文章目录 &#x1f3e0;一、memcpy函数1.函数形式以及功能介绍2.函数的使用3.模拟实现 &#x1f680;二、memmove函数1.函数形式以及功能介绍2.函数的使用3.模拟实现 &#x1f3a1;三、memset函数1.函数形式以及功能介绍2.函数的使用 &#x1f389;四、memcmp1.函数形…...

使用Python开发自动驾驶技术:车道线检测模型

友友们好! 我是Echo_Wish,我的的新专栏《Python进阶》以及《Python!实战!》正式启动啦!这是专为那些渴望提升Python技能的朋友们量身打造的专栏,无论你是已经有一定基础的开发者,还是希望深入挖掘Python潜力的爱好者,这里都将是你不可错过的宝藏。 在这个专栏中,你将会…...

HTTP代理的全面解读:什么是HTTP代理?HTTP代理的工作原理

在互联网大潮中&#xff0c;每一个请求和返回数据的背后&#xff0c;都离不开传输协议的支持&#xff0c;而HTTP协议无疑是最熟悉的网络通信基础之一。当我们谈到HTTP代理时&#xff0c;它不仅让浏览网络变得更高效&#xff0c;也为数据采集以及全球性远程任务提供了解决方案。…...

DeepSeek底层揭秘——deepEP

1. 什么是 deepEP&#xff1f; (1) 定义 deepEP (DeepSeek EndPoint) 是 DeepSeek 开源的一款高性能、低延迟的分布式通信库&#xff0c;专为大规模深度学习训练和推理场景设计。它旨在优化分布式计算环境中的通信效率&#xff0c;特别是在节点间数据交换、梯度同步、模型分发…...

内网渗透(CSMSF) 构建内网代理的全面指南:Cobalt Strike 与 Metasploit Framework 深度解析

目录 1. Cobalt Strike 在什么情况下会构建内网代理&#xff1f; 2. Cobalt Strike 构建内网代理的主要作用和目的是什么&#xff1f; 3. Cobalt Strike 如何构建内网代理&#xff1f;需要什么条件和参数&#xff1f; 条件 步骤 参数 4. Cobalt Strike 内网代理能获取什…...

【redis】哨兵:人工恢复主节点故障和哨兵自动恢复主节点故障

文章目录 基本概念人工恢复主节点故障操作流程 哨兵自动恢复主节点故障哨兵集 Redis 的主从复制模式下&#xff0c;⼀旦主节点由于故障不能提供服务&#xff0c;需要⼈⼯进⾏主从切换&#xff0c;同时⼤量的客⼾端需要被通知切换到新的主节点上&#xff0c;对于上了⼀定规模的应…...

【Go 】异常处理

1. Go 语言错误处理基础 Go 语言尽量避免使用异常&#xff0c;推荐使用 返回错误 让调用者处理。Go 语言标准库提供 error 接口&#xff1a;type error interface {Error() string }errors.New("错误信息") 创建错误对象。 package mainimport ("errors"…...

微软纳德拉最新一期访谈

萨提亚纳德拉&#xff1a; 微软的AGI计划与量子突破| 2025.2.20 【文章核心预览&#xff1a;】 1、纳德拉回应AI价格战&#xff1a;效率提升将重塑需求&#xff0c;但关键是能否带动GDP增长至10% 2、微软AI收入130亿美元&#xff0c;4年后目标1300亿&#xff0c;但提醒"…...

WebSocket接入SSL证书

目录 碎碎念解决方法创建 HTTPS WebSocket 服务器创建系统服务启动服务 碎碎念 在访问网站时&#xff0c;使用 HTTPS 非常重要。HTTPS 协议不仅可以确保数据传输的安全性&#xff0c;还可以防止中间人攻击和数据篡改等安全问题。任何没有 SSL 证书的内容都可能会被拒绝访问。因…...

蓝桥杯——嵌入式学习日记

因为lED和LCD共用PC8~PC15引脚&#xff0c;要通过锁存&#xff08;LE&#xff09;和&#xff08;GPIOC->ODR&#xff09;来避免LED和LCD引脚冲突 修改点: main.c中&#xff0c;GPIO初始化引脚后&#xff0c;LE&#xff08;PD2引脚低电平锁存&#xff0c;退出透明模式&…...

第七课:Python基础排序算法与比较排序原理深度解析

比较排序算法是算法领域中的经典内容&#xff0c;其核心思想通过元素间的比较操作确定相对顺序。本文将深入探讨冒泡排序的优化策略、选择排序的变种实现、插入排序的典型应用场景&#xff0c;并通过统计比较次数直观展示算法效率差异。 一、冒泡排序的优化策略 传统冒泡排序存…...

项目流程中关键节点的测试类型

一、全流程测试框架图 #mermaid-svg-LmUdhLObstSpThwP {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-LmUdhLObstSpThwP .error-icon{fill:#552222;}#mermaid-svg-LmUdhLObstSpThwP .error-text{fill:#552222;strok…...

EasyRTC嵌入式音视频通信SDK:WebRTC技术下的硬件与软件协同演进,开启通信新时代

在当今数字化时代&#xff0c;智能设备的普及和人们对实时通信需求的不断增长&#xff0c;推动了嵌入式音视频通信技术的快速发。EasyRTC嵌入式音视频通信SDK凭借其独特的技术特点和应用优势&#xff0c;在嵌入式设备和多平台实时通信领域脱颖而出。 1、轻量级设计与高性能 Ea…...

机器视觉工程师如何看机器视觉展会,有些机器视觉兄弟参加机器视觉展会,真的是参加了?重在参与?

作为机器视觉工程师,参加机器视觉展会不仅是了解行业前沿技术的窗口,也是拓展专业网络、寻找解决方案的重要机会。以下是结合展会信息和工程师视角的综合建议: 一、聚焦技术趋势与创新应用 参与技术论坛与研讨会 展会同期的技术论坛是获取行业洞见的核心渠道。例如: 上海展…...

重温Ubuntu 24.04 LTS

用户调整 # 创建新用户 sudo adduser newusername # 设置新用户的密码 sudo passwd newusername # 将新用户添加到 sudo 组 sudo usermod -aG sudo newusername # 修改ssh访问权限 sudo nano /etc/ssh/sshd_config # 将新用户加入&#xff0c;此时root将无法访问 AllowUsers n…...

新版 eslintrc 文件弃用 .eslintignore已弃用 替代方案

1.进入eslint.config.mjs文件 2.import { defineConfig, globalIgnores } from "eslint/config"; 引入globalIgnores 3.配置 defineConfig([ ... globalIgnores([ "config/*", ".husky", ".local", "public/*", ".…...

优化 SQL 语句方向和提升性能技巧

优化 SQL 语句是提升 MySQL 性能的关键步骤之一。通过优化 SQL 语句,可以减少查询时间、降低服务器负载、提高系统吞吐量。以下是优化 SQL 语句的方法、策略和技巧: 一、优化 SQL 语句的方法 1. 使用 EXPLAIN 分析查询 作用:查看 SQL 语句的执行计划,了解查询是如何执行的…...

数据可视化革命!「图表狐」五大行业新范式:从科研论文到商业决策的AI进化论

图表狐 - AI图表生成工具,在线数据可视化 一、学术研究&#xff1a;突破传统制图范式 案例1 基因测序热图 用户输入&#xff1a; "绘制差异表达基因热图&#xff0c;行标签为GeneA/B/C&#xff0c;列包含正常组5例、癌症组7例&#xff0c;红色标记上调基因&#xff08;f…...

Jenkins集成Trivy安全漏洞检查指南

要将Jenkins与Trivy集成以实现制品的安全漏洞检查&#xff0c;可以按照以下步骤操作&#xff1a; 安装Trivy 在Jenkins服务器或构建节点上安装Trivy # 使用包管理器&#xff08;如Debian/Ubuntu&#xff09; sudo apt-get install -y wget apt-transport-https gnupg lsb-rel…...

git使用钩子文件出现错误

git的钩子文件出现错误 问题打印&#xff1a;解决办法1.删除本地钩子文件2. 恢复commit-msg钩子3.重新提交工程 问题打印&#xff1a; 无法commit 1 个文件: .git/hooks/commit-msg: 行 1: 未预期的符号 < 附近有语法错误 .git/hooks/commit-msg: 行 1: Your browse does …...

SpringBoot 第二课(Ⅱ)配置嵌入式服务器

目录 一、封装类解读 二、注册Servlet三大组件&#xff08;Servlet、Filter、Listener&#xff09; 自定义这三个组件 WebConfig MyFilter MyListener HelloController hello1.html hello2.html 三、使用外置的Servlet容器 1.一定要确保打包方式是war包 2.将…...

Python学习笔记(6)

Python学习笔记&#xff08;6&#xff09; 第13节课 函数基础1.函数定义与调用2.函数的返回值3.局部变量与全局变量 第13节课 函数基础 对于任何一个知识点&#xff0c;必须讨论的三个问题&#xff1a; &#xff08;1&#xff09;它是啥 &#xff08;2&#xff09;为啥有它 …...

HarmonyOS Next应用架构设计与模块化开发详解

引言 在HarmonyOS Next开发中&#xff0c;合理的应用架构设计和模块化开发是构建高效、可维护应用的关键。本文将深入探讨HarmonyOS Next应用的架构设计思路&#xff0c;并通过实际代码示例展示如何实现模块化开发。 应用架构设计 HarmonyOS Next应用通常采用分层架构设计&…...

batman-adv 优化:基于信号强度(RSSI)选择链路

batman-adv 优化&#xff1a;基于信号强度&#xff08;RSSI&#xff09;选择链路 1. 背景介绍 batman-adv&#xff08;Better Approach To Mobile Ad-hoc Networking Advanced&#xff09; 是一种用于无线 Mesh 网络的路由协议。它主要基于 ETX&#xff08;Expected Transmis…...

计算机二级:函数基础题

函数基础题 第一题 rinput("请输入半径&#xff1a;") c3.1415926*r*2 print("{:.0f}".format(c))输出&#xff1a; Type Error第二题 a7 b2 print(a%2)输出 1第三题 ab4 def my_ab(ab,xy):abpow(ab,xy)print(ab,end"\n") my_ab(ab,2)prin…...

系统思考与心智模式

“问题不是出在我们做了多少&#xff0c;而是出在我们做了什么。” — 赫尔曼凯恩 “一分耕耘一分收获”&#xff0c;这似乎是我们脑海中根深蒂固的心智模式。今天&#xff0c;我在一家餐厅用餐&#xff0c;店员告诉我&#xff0c;打卡收藏可以获得一份小食。没过多久&#xf…...

高考志愿填报管理系统基于Spring Boot SSM

目录 摘要 ‌一、系统需求分析‌&#xff1a; 1.1用户主体分析 1.2 功能需求分析 1.3、非功能需求分析 二、‌技术实现‌&#xff1a; ‌三、结论‌&#xff1a; 摘要 该系统主要实现了&#xff1a;学生信息管理、院校信息查询、专业信息展示、志愿填报模拟、智能推荐管…...

[深度学习]图像分类项目-食物分类

图像分类项目-食物分类(监督学习和半监督学习) 文章目录 图像分类项目-食物分类(监督学习和半监督学习)项目介绍数据处理设定随机种子读取文件内容图像增广定义Dataset类 模型定义迁移学习 定义超参Adam和AdamW 训练过程半监督学习定义Dataset类模型定义定义超参训练过程 项目介…...

Qt在ARM中,如何使用drmModeObjectSetProperty 设置 Plane 的 zpos 值

在 Qt 中直接使用 drmModeObjectSetProperty 设置 Plane 的 zpos 值需要结合 Linux DRM/KMS API 和 Qt 的底层窗口系统&#xff08;如 eglfs 平台插件&#xff09;。以下是详细步骤和代码示例&#xff1a; 1. 原理说明 DRM/KMS 基础&#xff1a; Plane&#xff1a;负责图层合成…...

springboot milvus search向量相似度查询 踩坑使用经验

1.前提提要&#xff1a;java的pom 版本为&#xff1a;2.4.9 milvus 版本是&#xff1a;2.4.13-hotfix 2.先来工具类方法 /*** 向量搜索* param client* param query* return*/public SearchResp search(NonNull MilvusClientV2 client, NonNull VectorCondition query) {final …...

BFS解决FloodFill算法

1.图像渲染 733. 图像渲染 - 力扣&#xff08;LeetCode&#xff09; 1.题目解析 有一幅以 m x n 的二维整数数组表示的图画 image &#xff0c;其中 image[i][j] 表示该图画的像素值大小。你也被给予三个整数 sr , sc 和 color 。你应该从像素 image[sr][sc] 开始对图像进行…...

计算机组成原理

计算机组成原理是计算机科学与技术领域的一门基础课程&#xff0c;它主要研究计算机硬件系统的结构、设计和工作原理。通过学习计算机组成原理&#xff0c;可以深入理解计算机是如何执行程序的&#xff0c;从最底层的角度了解计算机的工作机制。以下是计算机组成原理的一些核心…...

Spring Boot整合SSE实现消息推送:跨域问题解决与前后端联调实战

摘要 本文记录了一次完整的Spring Boot整合Server-Sent Events&#xff08;SSE&#xff09;实现实时消息推送的开发过程&#xff0c;重点分析前后端联调时遇到的跨域问题及解决方案。通过CrossOrigin注解的实际应用案例&#xff0c;帮助开发者快速定位和解决类似问题。 一、项…...

硅基流动:推理加速,告别“服务器繁忙,请稍后再试”

DeepSeek虽然一直热度高涨&#xff0c;但存在一个很直接的问题——“服务器繁忙&#xff0c;请稍后再试”。 一、介绍概况 硅基流动&#xff08;SiliconFlow&#xff09;是北京硅基流动科技有限公司推出的AI基础设施&#xff08;AI Infra&#xff09;平台&#xff0c;成立于202…...

腾讯云DNS和Lego工具结合使用,可以方便地为你的域名自动申请和续期SSL证书。

腾讯云DNS和Lego工具结合使用&#xff0c;可以方便地为你的域名自动申请和续期SSL证书。以下是具体步骤&#xff1a; 1. 准备工作 腾讯云账号&#xff1a;确保你有一个腾讯云账号&#xff0c;并且已经开通了DNS服务。域名&#xff1a;确保你拥有一个域名&#xff0c;并且已经…...

微服务 - 高级篇

微服务 - 高级篇 一、服务治理&#xff08;一&#xff09;服务注册与发现&#xff08;二&#xff09;负载均衡&#xff08;三&#xff09;服务熔断与降级 二、分布式事务&#xff08;一&#xff09;解决方案&#xff08;二&#xff09;最终一致性 三、性能优化&#xff08;一&a…...

【Linux】线程基础

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;linux笔记仓 目录 01.背景知识02.线程概念简单使用线程线程调度成本更低 01.背景知识 OS进行内存管理&#xff0c;不是以字节为单位的&#xff0c;而是以内存块为单位的&#xff0c;默认大小为4kb&…...

WHAM 人体3d重建部署笔记 vitpose

目录 视频结果: docker安装说明: conda环境安装说明: 依赖项: 依赖库: 安装 mmpose,mmcv 下载模型权重: 算法原理, demo脚本 报错inference_top_down_pose_model: 测试命令: 视频结果: wham_smpl预测结果 git地址: GitHub - yohanshin/WHAM WHAM: Recons…...

netplan是如何操控systemd-networkd的? 笔记250324

netplan是如何操控systemd-networkd的? netplan通过以下方式操控systemd-networkd&#xff1a; 工作原理&#xff1a;netplan读取位于/etc/netplan/目录下的YAML格式的配置文件&#xff0c;这些配置文件描述了网络接口的配置。netplan会将这些配置文件解析并转换为systemd-ne…...

[学成在线]06-视频分片上传

上传视频 需求分析 教学机构人员进入媒资管理列表查询自己上传的媒资文件。 点击“媒资管理” 进入媒资管理列表页面查询本机构上传的媒资文件。 教育机构用户在"媒资管理"页面中点击 "上传视频" 按钮。 点击“上传视频”打开上传页面 选择要上传的文件…...

机器视觉场景应用中,有没有超景深的工业镜头

在机器视觉领域,确实存在具有超景深特性的工业镜头,这类镜头通过特殊的光学设计或技术手段,能够显著扩大清晰成像的纵向范围,从而满足复杂检测场景中对多平面物体清晰成像的需求。以下是相关技术要点及典型镜头类型: 1. 远心镜头 远心镜头是超景深镜头的典型代表,其特点包…...