Spring Boot注解的使用细节

news/2024/11/28 1:50:44/

@RequestParam:

1、在前端传入多个相同的属性时,若使用数组接收,则无需使用@RequestParam注解。若使用集合接收,则须使用@RequestParam来绑定参数。

2、当前端发送的属性名与服务端接收的不一致时,可以使用@RequestParam(接收的属性名=“前端发来的属性名”)
来绑定接收,括号里面有个required属性,默认为true,若为true,则表示绑定的属性不可为空,不然会报错。若为false则不会报错。

@DateTimeFormat:

@DateTimeFormat里面有个pattern属性,用于指定前端传来的日期时间格式,如:
@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)

@RequestBody

@RequestBody可以将前端发送来的json格式的参数封装进一个实体类对象中

@PathVariable

用于获取路径变量,并绑定给形参。有时候前端请求的路径不是写死的,比如是和id相关的,每个人的id不同,访问路径也不同,就需要设置路径变量,变量是多少,路径就是多少,如:
http://localhost:8080/pathParam/521
http://localhost:8080/pathParam/125
后面的521和125就是不同的路径变量

@RequestMapping

@RequestMapping
当注解在类上时,其路径为父路径,该类中的方法的路径为子路径。如:类的注解为@RequestMapping(“/parent”),该类某个方法的注解为@RequestMapping(“/get”),则该方法的请求路径为…/parent/get

路径参数:/{变量}

@RequestMapping("/pathParam/{id}")public String pathParam(@PathVariable Integer id){System.out.println(id);return "OK";}

当传入多个路径参数时:

http://localhost:8080/pathParam/521/cxl
http://localhost:8080/pathParam/125/陈熙龙

@RequestMapping("/pathParam/{id}/{name}")public String pathParam(@PathVariable Integer id,@PathVariable String name){System.out.println(id+":"+name);return "OK";}

@RestController

@RestController = @Controller + @ResponseBody

@ResponseBody

@ResponseBody 使用在Controller方法上或者类上 ,将方法返回值直接响应,如果返回值类型是 实体对象/集合/数组,将会转换为JSON格式相应

@Component(建议使用其衍生注解:@Controller,@Service,@Repository,用于区分哪个层的)

@Component(value = “bean名”),value可以省略,其三个衍生注解同样可以指定bean名,bean的名字默认为首字母小写的类名。:声明控制器bean只能使用@Controller
常用于DAO层和Service层的上,将当前类交给IOC(控制反转)容器管理,成为IOC容器中的bean,也可用于Dao层和Service层之外的其他类
如:

@Component
public class EmpService {@Autowiredprivate EmpDao empDao;

@Controller

@Component的衍生注解,标注在Controller/控制器类上,作用与@Component一样,用的少,@RestController包含@Controller

@Service

@Component的衍生注解,标注在Service/业务类上,作用与@Component一样

@Repository

@Component的衍生注解,标注在DAO/数据访问类上,作用与@Component一样(由于与mybatis整合,用的少)

@ComponentScan

用于扫描bean的,未被扫描到的bean即为不存在于IOC容器,隐式的配置在启动类上,默认的扫描范围是启动类所在包及其子包 。@ComponentScan({{“指定要扫描的包”,“…”}}),一旦指定,就得额外显式声明默认范围

@Autowired

常用于Service层与Controller层分别声明的DAO层接口属性和Service层接口属性上,程序运行时,IOC容器会提供该类型的bean对象,并赋值给该变量 DI-依赖注入,默认是按照类型注入
如:

public class EmpController {@Autowiredprivate EmpService empService;

@Primary,@Qualifier

由于@Autowired注解是按照类型注入的,一旦同一个类型的bean有多个,就不知道注入哪个,会报错。
@Primary,@Qualifier 就是为了解决这个问题,
@Primary可以指定bean的优先级,类在使用@Autowired的同时加上@Primary,就会优先注入此类的bean.
@Qualifier可以声明要注入bean的名字,类在使用@Autowired的同时加上@Qualifier,就会优先注入此bean,@Qualifier(“名字”)。

@Resource

@Autowired注解默认是按照类型注入的,而@Resource是按照bean名字来注入的,@Resource(name=“bean名”),可以替代@Autowired,此注解是jdk提供的,而@Autowired是Spring框架提供的


http://www.ppmy.cn/news/105226.html

相关文章

java-反射

反射 示例代码 import java.lang.reflect.*; public class Example {public static void main(String[] args) throws Exception {// 获取 Class 对象Class<?> clazz Class.forName("java.lang.String");// 获取类名、包名和修饰符String className clazz…

产品经理-产品驱动增长3-共识体验

公式&#xff1a;增长需求方案共识体验场域效率口碑流量&#xff0c;篇幅问题&#xff0c;这篇我们讲两个&#xff0c;分别是共识和体验 一、共识 前面我们研究了需求和方案&#xff0c;用介绍的方法已经为G公司和K公司的产品分别梳理了一条核心需求&#xff0c;并且还有三个方…

华为OD机试真题B卷 Java 实现【停车场车辆统计】,附详细解题思路

一、题目描述 特定大小的停车场&#xff0c;数组cars[]表示&#xff0c;其中1表示有车&#xff0c;0表示没车。 车辆大小不一&#xff0c;小车占一个车位&#xff08;长度1&#xff09;&#xff0c;货车占两个车位&#xff08;长度2&#xff09;&#xff0c;卡车占三个车位&a…

操作系统期末复习——课时十内存管理(一)

1、内存管理的基本原理和要求 1&#xff09;内存管理的定义 操作系统对内存的划分和动态分配就是内存管理的概念。 2&#xff09;内存管理的功能 &#xff08;1&#xff09;内存空间的分配和回收&#xff1a;由操作系统完成对主存的分配和回收&#xff0c;对编程人员透明。 &…

最热门高效的Node.JS开源第三方开发库和特点(持续更新......)

目录 1. Express 2. Socket.io 3. Mongoose 4. Passport 5. Async 6. PM2 7. Nodemailer 8. Request 9. Cheerio 10. Lodash 11. Bluebird 12. Winston 13. Socket.io-client 14. Node-sass 15. Moment 16. Gulp 17. Grunt 18. Chai 19. Sinon 20. Nodemon…

「SQL面试题库」 No_82 报告系统状态的连续日期

&#x1f345; 1、专栏介绍 「SQL面试题库」是由 不是西红柿 发起&#xff0c;全员免费参与的SQL学习活动。我每天发布1道SQL面试真题&#xff0c;从简单到困难&#xff0c;涵盖所有SQL知识点&#xff0c;我敢保证只要做完这100道题&#xff0c;不仅能轻松搞定面试&#xff0…

电子科技大学编译原理复习笔记(六):自上而下的语法分析

目录 前言 重点一览 引言 语法分析的功能 语法分析的分类 自上而下分析方法 回溯分析法 回溯分析法例子 方法 存在的问题 产生的原因 特点 解决缺陷 消除回溯&#xff08;重点&#xff09; 递归下降分析器 递归下降分析法 递归过程的构造 扩充BNF 改进的递…

20230529----重返学习-复合组件通信redux-redux源码-redux工程化开发-自定义hook

day-080-eighty-20230529-复合组件通信redux-redux源码-redux工程化开发-自定义hook 复合组件通信redux 要想实现复合组件通信&#xff0c;一般采用公共状态管理方案。常见的公共状态管理方案&#xff1a; 官方推荐的&#xff1a;redux。 redux react-redux redux-logger/r…