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

SpringBoot常用的简化开发注解

一、引言

在Spring Boot框架中,有许多常用的注解可用于开发项目。下面是其中一些常见的注解及其功能和属性的说明:

1、@RestController

@RestController 是 Spring Framework 中的一个注解,用于标识一个类是 RESTful 服务的控制器。它结合了 @Controller@ResponseBody 注解的功能,简化了创建 RESTful 服务的代码。

@RestController 的主要作用是将方法返回的对象直接转换为响应体,并通过适当的 HTTP 响应头来补充响应信息。这意味着在使用 @RestController 注解的类中,不需要显式地使用 @ResponseBody 来指定方法的返回值要作为响应体。

以下是 @RestController 注解的常用属性:

1、value指定控制器的 URL 路径。

2、produces指定控制器支持的响应媒体类型。

3、consumes指定控制器支持的请求媒体类型。

下面是一个使用 @RestController 注解的示例:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;@RestController
public class UserController {@GetMapping("/users/{id}")public User getUserById(@PathVariable int id) {// 根据用户ID查询数据库或其他操作User user = userRepository.findById(id);return user;}
}

上述示例中,UserController 类被标记为 @RestController,表明它是一个 RESTful 服务的控制器。getUserById 方法使用 @GetMapping 注解来处理 GET 请求,并通过 @PathVariable 注解将 URL 中的参数映射到方法的参数中。方法返回一个 User 对象,Spring 将自动转换为 JSON 格式的响应体,并设置适当的 HTTP 响应头。

这样,当发送 GET 请求 /users/123 时,将会触发 getUserById 方法,根据 ID 查询用户信息并将其作为 JSON 数据返回给客户端。

2、@RequestMapping

@RequestMapping 注解是 Spring MVC 框架中用于将请求映射到控制器方法的注解。它可以被应用在类级别或方法级别。

1、当应用在类级别时,它指定了基本的请求路径,该路径会与控制器中的所有方法的请求路径进行匹配。

2、当应用在方法级别时,它指定了具体的请求路径,该路径会与该方法的请求进行匹配。

@RequestMapping 注解有多个属性可以配置:

1、value用于指定请求的路径,可以接受单个字符串值或字符串数组,支持 Ant 风格的路径模式(例如 /users/*)。

2、method用于指定请求的 HTTP 方法,可以接受一个或多个 RequestMethod 枚举值,默认为任意请求方法。

3、params用于指定请求的参数条件,可以接受一个或多个字符串表达式,支持简单的比较操作符(例如 param=value!param 等)。

4、headers用于指定请求的头部条件,可以接受一个或多个字符串表达式,支持简单的比较操作符(例如 header=value!header 等)。

5、consumes用于指定请求的内容类型,可以接受一个或多个字符串值,表示服务器可接受的 MIME 类型。

6、produces用于指定响应的内容类型,可以接受一个或多个字符串值,表示服务器可生成的 MIME 类型。

下面是一个使用 @RequestMapping 注解的示例代码:

@Controller
@RequestMapping("/api/users")
public class UserController {@RequestMapping(value = "/{id}", method = RequestMethod.GET)public ResponseEntity<User> getUserById(@PathVariable Long id) {// 根据用户ID查询用户信息User user = userService.getUserById(id);if (user != null) {return ResponseEntity.ok(user);} else {return ResponseEntity.notFound().build();}}@RequestMapping(value = "/create", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)public ResponseEntity<Void> createUser(@RequestBody User user) {// 创建新用户userService.createUser(user);return ResponseEntity.created(URI.create("/api/users/" + user.getId())).build();}
}

在上述代码中:

1、UserController 类上使用了 @RequestMapping("/api/users") 注解,表示该控制器处理以 /api/users 开头的请求。

2、getUserById 方法使用了 @RequestMapping(value = "/{id}", method = RequestMethod.GET) 注解,表示该方法处理以 /api/users/{id} 形式的 GET 请求。

3、createUser 方法使用了 @RequestMapping(value = "/create", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) 注解,表示该方法处理以 /api/users/create 形式的 POST 请求,并且只接受 JSON 类型的请求体。

通过使用 @RequestMapping 注解,我们可以轻松实现请求的映射和路由,使得控制器方法能够根据请求的路径、HTTP 方法、参数条件等进行精确匹配。

3、@GetMapping@PostMapping@PutMapping@DeleteMapping

@GetMapping、@PostMapping、@PutMapping、@DeleteMapping是Spring框架中用于处理HTTP请求的注解。它们可以分别对应GET、POST、PUT和DELETE请求方法。

这些注解可以用在控制器类或方法上,用于定义特定请求方法的处理逻辑。

以下是每个注解的用途和属性: 

@GetMapping:用于处理GET请求。

属性:

1、headers指定请求头的条件,可选。

2、params指定请求参数的条件,可选。

3、value指定URL路径或路径模式,可以包含占位符。

代码示例:

@RestController
@RequestMapping("/api")
public class MyController {@GetMapping("/hello")public String hello() {return "Hello, GET!";}
}

@PostMapping:用于处理POST请求。

属性同@GetMapping。

代码示例:

@RestController
@RequestMapping("/api")
public class MyController {@PostMapping("/hello")public String hello() {return "Hello, POST!";}
}

@PutMapping:用于处理PUT请求。

属性同@GetMapping。

代码示例:

@RestController
@RequestMapping("/api")
public class MyController {@PutMapping("/hello")public String hello() {return "Hello, PUT!";}
}

@DeleteMapping:用于处理DELETE请求。

属性同@GetMapping。

代码示例:

@RestController
@RequestMapping("/api")
public class MyController {@DeleteMapping("/hello")public String hello() {return "Hello, DELETE!";}
}

注意:上述代码示例中的@RestController@RequestMapping是其他常用的注解,用于定义REST风格的控制器类和路径映射。

通过使用这些HTTP方法对应的注解,我们可以方便地定义处理不同类型请求的方法,并根据请求的具体条件来匹配相应的方法。

4、@PathVariable

@PathVariable注解用于将URL中的变量值绑定到控制器方法的参数上。在Spring MVC中,可以使用该注解来获取RESTful风格的URL中的路径变量。

该注解有以下属性:

1、value指定URL路径中的变量名,可以使用占位符形式(例如,/user/{id})。

2、namevalue属性作用相同,用于指定URL路径中的变量名。

3、required:声明该变量是否是必需的,默认为true,若路径中没有该变量会抛出异常。

4、defaultValue指定当URL路径中的变量未提供时的默认值。

下面是一个示例代码:

@RestController
@RequestMapping("/users")
public class UserController {@GetMapping("/{id}")public User getUserById(@PathVariable("id") Long id) {// 根据用户ID查询用户信息,并返回return userService.getUserById(id);}@GetMapping("/{category}/{id}")public Product getProduct(@PathVariable String category, @PathVariable("id") int productId) {// 根据类别和产品ID获取相应产品信息,并返回return productService.getProduct(category, productId);}
}

在上述示例中,当客户端发送GET请求到"/users/123"时,getUserById方法的id参数将会被自动绑定为路径变量的值123。类似地,当客户端发送GET请求到"/users/books/456"时,getProduct方法的category参数将会被绑定为"books",productId参数将会被绑定为456。 

5、@RequestParam

@RequestParam注解是Spring框架中常用的注解之一,用于从请求参数中获取值并绑定到方法的参数上。它可以用于处理GET、POST等HTTP请求方法。

属性:

1、value指定要绑定的请求参数的名称。

2、required指定该参数是否是必需的,默认为true。如果设置为true,并且请求中没有提供该参数,则会返回400 Bad Request错误。

3、defaultValue指定该参数的默认值。当请求中未提供该参数时,将使用默认值。

下面是一个简单的示例代码,说明了如何在Spring MVC中使用@RequestParam注解:

@RestController
@RequestMapping("/example")
public class ExampleController {@GetMapping("/hello")public String sayHello(@RequestParam("name") String name) {return "Hello, " + name + "!";}
}

在上述示例中,我们定义了一个ExampleController,其中有一个GET请求的处理方法sayHello()。该方法使用@RequestParam注解来接收名为"name"的请求参数,并将其绑定到方法的name参数上。然后,它返回一个包含问候消息的字符串。

例如,如果我们向/example/hello?name=John发出GET请求,它将返回字符串"Hello, John!"作为响应。

这种方式可以方便地从请求中获取参数,并在方法内进行处理和使用。

6、@RequestBody

@RequestBody 注解用于将 HTTP 请求的请求体映射到方法的参数上。它可以用在 Spring MVC 和 Spring Boot 中的控制器方法中。

使用 @RequestBody 注解时,Spring 框架会自动将请求体中的数据转换成方法参数所需的对象类型,并将其传递给方法。

下面是一些常见的 @RequestBody 注解属性:

1、required: 指定是否必须提供请求体,默认值为 true。如果设置为 true,而实际请求中没有包含请求体,则会返回 400 BAD REQUEST 响应。如果设置为 false,而实际请求中没有包含请求体,则方法参数将被设置为 null

2、value / name: 指定请求体的名称,例如:@RequestBody("data") 或 @RequestBody(name = "data")

3、defaultValue: 指定当请求体为空时的默认值,例如:@RequestBody(defaultValue = "default")

以下是一个简单的示例代码,演示了如何使用 @RequestBody 注解:

@RestController
public class UserController {@PostMapping("/users")public ResponseEntity<String> createUser(@RequestBody User user) {// 处理接收到的用户数据// ...return ResponseEntity.ok("User created successfully");}
}public class User {private String username;private String password;// 构造函数、getter 和 setter 方法省略
}

在上述示例中,createUser 方法使用了 @PostMapping 注解表示它处理 POST 请求,并使用 @RequestBody 注解将请求体映射到 User 对象上。当请求到达 /users 路径时,Spring 框架会自动解析请求体,并将其转换为 User 对象,然后传递给 createUser 方法进行处理。

请注意,要使 @RequestBody 注解正常工作,需要确保在 Spring 配置文件中配置了正确的消息转换器(例如:MappingJackson2HttpMessageConverter)以支持请求体数据的转换。

7、@ResponseBody

@ResponseBody注解用于将方法的返回值直接作为HTTP响应体返回给客户端,而不是将其解析为视图页面。它可以用在控制器的方法上。

该注解的属性有以下几种:

1、value:指定要返回的媒体类型,如application/jsonapplication/xml等。默认情况下,根据请求的Accept头来确定响应的媒体类型。

2、produces:与value属性类似,用于指定要返回的媒体类型,但可以通过多个值进行选择。例如:produces = {"application/json", "application/xml"}

3、headers:指定响应的头信息。

下面是一个使用@ResponseBody注解的示例代码:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;@RestController
public class MyController {@GetMapping("/hello")@ResponseBodypublic String sayHello() {return "Hello, world!";}
}

在上述代码中,@RestController注解表示这是一个REST风格的控制器,@GetMapping注解指定了处理GET请求的路径为"/hello"。@ResponseBody注解使得sayHello()方法的返回值直接作为响应体返回给客户端。

当客户端访问/hello路径时,将会得到一个包含字符串"Hello, world!"的响应体。

8、@Autowired

@Autowired注解是Spring框架提供的一个注解,用于自动装配(自动注入)Bean。它可以应用在构造方法、属性或者Setter方法上。

使用@Autowired注解,能够避免手动编写繁琐的依赖注入代码,让Spring容器自动根据类型进行依赖的注入。当使用@Autowired注解时,Spring会扫描容器中已经注册的Bean,并通过类型匹配来自动装配相关的依赖。

@Autowired注解有以下几个常用的属性:

1、required:该属性用于指定被注入的依赖是否是必须的,默认值为true。如果找不到匹配的Bean时,当required=true时,会抛出NoSuchBeanDefinitionException异常;当required=false时,会将属性设置为null。

2、qualifier:当存在多个符合依赖类型的Bean时,可以使用该属性指定需要注入的具体Bean的名称。使用@Qualifier("beanName")来指定Bean的名称。

3、value:该属性与qualifier属性功能相同,可以用来指定Bean的名称。

下面是一个简单的示例代码,演示了如何使用@Autowired注解进行依赖注入:

@Component
public class MyComponent {private AnotherComponent anotherComponent;@Autowiredpublic MyComponent(AnotherComponent anotherComponent) {this.anotherComponent = anotherComponent;}// 省略其他方法}

在上述代码中,MyComponent类通过构造方法注入AnotherComponent类的实例。使用@Autowired注解标记了构造方法,Spring会自动在容器中查找匹配的AnotherComponent类型的Bean,并将其注入到MyComponent的构造方法中。

需要注意的是,为了让Spring能够扫描和管理这些带有@Autowired注解的类,我们需要在配置文件中配置@ComponentScan注解,指定要扫描的包路径:

@Configuration
@ComponentScan("com.example")
public class AppConfig {// 配置其他Bean
}

以上就是@Autowired注解的用处、属性以及一个简单的示例代码。 

9、@Component

@Component 是 Spring 框架中最常见的注解之一。它用于将一个普通的 Java 类标识为 Spring 组件,使其能够被 Spring IoC(依赖注入)容器所管理。通过 @Component 注解,Spring 会自动扫描和加载这些组件,并创建它们的实例。

@Component 注解有几个属性可用于进一步配置组件:

1、value:指定组件的名称。如果没有显式指定,默认情况下将使用类名首字母小写的形式作为组件的名称。

2、scope:指定组件的作用域。默认值是单例模式(Singleton),在整个应用程序生命周期内只创建一个实例。其他可用的选项包括原型模式(Prototype),每次请求都会创建一个新实例;会话模式(Session),在同一会话期间只创建一个实例;请求模式(Request),在每次请求中创建一个新实例。

3、autowire:指定自动装配模式。默认情况下,Spring 不会自动装配该组件的依赖关系。可用的选项包括 byName、byType、constructor 和 no。其中,byName 会根据属性名称进行自动装配,byType 则会根据属性类型进行自动装配。

4、initMethod:指定在创建组件实例后要调用的初始化方法。可以是组件内的任何公共无参方法。

5、destroyMethod:指定在销毁组件实例前要调用的方法。可以是组件内的任何公共无参方法。

下面是一个使用 @Component 注解的示例代码:

import org.springframework.stereotype.Component;@Component
public class UserService {// 类的具体实现...
}

在上述示例中,UserService 类被标记为一个 Spring 组件,并将其作为一个可管理的 bean 注册到 Spring IoC 容器中。可以通过其他注解如 @Autowired@Resource 在其他组件中引用和使用此组件。 

10、@Configuration

@Configuration注解是Spring框架中的一个注解,用于标识一个类作为配置类。配置类通常用于定义和配置Spring应用程序中的Bean。

配置类是Spring Boot应用程序的关键组成部分之一,其目的是通过Java代码而不是XML文件来配置和管理应用程序的Bean。使用@Configuration注解标记的类可以包含一个或多个方法,这些方法在运行时将被Spring容器调用以创建Bean实例。

以下是@Configuration注解的一些常见属性:

1、proxyBeanMethods默认为true。该属性控制是否启用基于CGLIB的代理模式来保证依赖注入的工作。当为true时,Spring容器将生成代理对象来处理对Bean方法的调用。当为false时,Spring容器将返回原始的配置类实例,而不是代理对象。

2、value为配置类提供一个可选的名称。

下面是一个使用@Configuration注解的简单示例:

@Configuration
public class AppConfig {@Beanpublic UserServiceImpl userService() {return new UserServiceImpl();}@Beanpublic UserDAO userDAO() {return new UserDAOImpl();}
}

在上面的示例中,AppConfig类使用@Configuration注解进行标注,表明它是一个配置类。该类内部包含了两个带有@Bean注解的方法,这些方法负责创建和配置应用程序中的Bean。在运行时,Spring容器将根据这些方法的定义创建并管理相应的Bean实例。

正如上述代码所示,@Configuration注解的使用可以使我们通过Java代码轻松地配置和管理应用程序中的Bean,而无需显式地编写XML文件。

二、结尾

学习这些注解可以帮助你更轻松地开发基于Spring Boot的Web应用程序,处理HTTP请求和响应,进行依赖注入,以及创建可扩展的组件和配置。

相关文章:

SpringBoot常用的简化开发注解

一、引言 在Spring Boot框架中&#xff0c;有许多常用的注解可用于开发项目。下面是其中一些常见的注解及其功能和属性的说明&#xff1a; 1、RestController RestController 是 Spring Framework 中的一个注解&#xff0c;用于标识一个类是 RESTful 服务的控制器。它结合了…...

python相关

1、更改用户名之后&#xff0c;C盘下的文件夹下名称没有改&#xff1f;这样设置 https://blog.csdn.net/qq_56088882/article/details/127470766 2、安装python和pycharm 链接 3、vscod中import requests出错&#xff1a;亲测有效&#xff1a; 链接...

C语言的类型转换

C语言的类型转换很重要&#xff0c;经常出现&#xff0c;但是往往不被人注意&#xff0c;而在汇编代码当中就暴露无遗了。 如下列代码&#xff1a; char ch; while ((ch getchar()) ! #) putchar(ch); 反汇编后&#xff1a; .text:00401006 mov…...

从零构建深度学习推理框架-11 Resnet

op和layer结构 在runtime_ir.cpp中&#xff0c;我们上一节只构建了input和output&#xff0c;对于中间layer的具体实现一直没有完成&#xff1a; for (const auto& kOperator : this->operators_) {if (kOperator->type "pnnx.Input") {this->input_o…...

多线程练习-顺序打印

wait和notify的使用推荐看通过wait和notify来协调线程执行顺序 题目 有三个线程&#xff0c;线程名称分别为&#xff1a;a&#xff0c;b&#xff0c;c。 每个线程打印自己的名称。 需要让他们同时启动&#xff0c;并按 c&#xff0c;b&#xff0c;a的顺序打印 代码及其注释…...

一文读懂MQTT各参数定义(非ChatGPT生成版)

文章目录 前言主流使用MQTT协议的云平台连接参数连接参数详解1.服务器地址&#xff08;Server Address&#xff09;2.端口&#xff08;Port&#xff09;3.客户端标识符&#xff08;Client Identifier&#xff09;4.用户名和密码&#xff08;Username and Password&#xff09;5…...

redis-lua脚本-无参-比较2个数值

以下是演变的过程&#xff1a; eval " return haha " 0 eval " local res haha; return res; " 0 eval " local value1 redis.call(get,value1); local value2 redis.call(get,value2);return value1; " 0 eval " return 1 < 2;…...

Lesson5-1:OpenCV视频操作---视频读写

学习目标 掌握读取视频文件&#xff0c;显示视频&#xff0c;保存视频文件的方法 1 从文件中读取视频并播放 在OpenCV中我们要获取一个视频&#xff0c;需要创建一个VideoCapture对象&#xff0c;指定你要读取的视频文件&#xff1a; 创建读取视频的对象 cap cv.VideoCapt…...

Lesson5-2:OpenCV视频操作---视频追踪

学习目标 理解meanshift的原理知道camshift算法能够使用meanshift和Camshift进行目标追踪 1.meanshift 1.1原理 m e a n s h i f t meanshift meanshift算法的原理很简单。假设你有一堆点集&#xff0c;还有一个小的窗口&#xff0c;这个窗口可能是圆形的&#xff0c;现在你可…...

1778_树莓派系统安装

全部学习汇总&#xff1a; GitHub - GreyZhang/little_bits_of_raspberry_pi: my hacking trip about raspberry pi. 一段视频学习教程的总结&#xff0c;对我来说基本上用处不大。因为我自己的树莓派简简单单安装完就开机成功了&#xff0c;而且实现了很多视频中介绍的功能。 …...

关闭jenkins插件提醒信息

jenkins提醒信息和安全警告可以帮助我们了解插件或者jenkins的更新情况&#xff0c;但是有些插件是已经不维护了&#xff0c;提醒却一直存在&#xff0c;看着糟心&#xff0c;就像下面的提示 1、关闭插件提醒 找到如下位置&#xff1a;系统管理-系统配置-管理监控配置 打开管…...

JixiPix Artista Impresso Pro for mac(油画滤镜效果软件)

JixiPix Artista Impresso pro Mac是一款专业的图像编辑软件&#xff0c;专为Mac用户设计。它提供了各种高质量的图像编辑工具&#xff0c;可以帮助您创建令人惊叹的图像。该软件具有直观的用户界面&#xff0c;使您可以轻松地浏览和使用各种工具。 它还支持多种文件格式&…...

机器学习之 Jupyter Notebook 使用

&#x1f388; 作者&#xff1a;Linux猿 &#x1f388; 简介&#xff1a;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我&#xff0c;关注我&#xff0c;有问题私聊&#xff01; &…...

Unity引擎修改模型顶点色的工具

大家好&#xff0c;我是阿赵。   之前分享过怎样通过MaxScript在3DsMax里面修改模型的顶点色。不过由于很多时候顶点色的编辑需要根据在游戏引擎里面的实际情况和shader的情况来动态调整&#xff0c;所以如果能在引擎里面直接修改模型的顶点色&#xff0c;将会方便很多。于是…...

linux安装minio以及springboot整合使用

文章目录 1.linux安装minio2.springboot整合minio使用 1.linux安装minio 1.新建文件夹 mkdir /home/minio # 数据文件夹 mkdir /home/minio/data # 创建日志文件夹 mkdir /home/minio/log2.进入文件夹 cd /home/minio3.下载minio&#xff0c;链接可从官网获取 wget https://…...

javaee 事务 事务的特性 事务的并发问题 事务的隔离级别

什么是事务(Transaction) 是并发控制的单元&#xff0c;是用户定义的一个操作序列。这些操作要么都做&#xff0c;要么都不做&#xff0c;是一个不可分割的工作单位。通过事务&#xff0c;sql 能将逻辑相关的一组操作绑定在一起&#xff0c;以便服务器 保持数据的完整性。事务…...

Matlab怎么引入外部的latex包?Matlab怎么使用特殊字符?

Matlab怎么引入外部的latex包&#xff1f;Matlab怎么使用特殊字符&#xff1f; Matlab怎么使用特殊字符&#xff1f;一种是使用latex方式&#xff0c;Matlab支持基本的Latex字符【这里】&#xff0c;但一些字符需要依赖外部的包&#xff0c;例如“&#x1d53c;”&#xff0c;需…...

day-07 I/O复用(select)

一.I/O复用 &#xff08;一&#xff09;基于I/O复用的服务器端 1.多进程服务器 每次服务都需要创建一个进程&#xff0c;需要大量的运算和内存空间 2.复用 只需创建一个进程。 3.复用技术在服务器端的应用 &#xff08;二&#xff09;select函数实现服务器端 &#xff08;…...

Glide的使用及源码分析

前言 依赖 implementation com.github.bumptech.glide:glide:4.16.0 github: GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrolling 基本使用 //加载url Glide.with(this) .load(url) .placeholder(R.drawable.placehol…...

外贸爬虫系统

全球智能搜索 全球智能搜索 支持全球所有国家搜索引擎&#xff0c;及社交平台&#xff0c;精准定位优质的外贸客户&#xff0c;免翻墙 全球任意国家地区实时采集 搜索引擎全网邮箱电话采集 社交平台一键查看采集&#xff08;Facebook,Twitter,Linkedin等&#xff09; 职位…...

CentOS 8 安装 Code Igniter 4

在安装好LNMP运行环境基础上&#xff0c;将codeigniter4文件夹移动到/var/nginx/html根目录下&#xff0c;浏览器地址栏输入IP/codeigniter/pulbic 一直提示&#xff1a; Cache unable to write to "/var/nginx/html/codeigniter/writable/cache/". 找了好久&…...

.net framework 提示安装了 但是删除面板看不到

如果你在计算机上安装了.NET Framework&#xff0c;但在“控制面板”中找不到.NET Framework的相关条目&#xff0c;可能是因为.NET Framework的某些组件或特定版本未在“程序和功能”&#xff08;或旧版本的Windows中称为“程序和功能”&#xff09;列表中列出。这可能是正常情…...

flask-smorest 库

flask-smorest 简介 flask-smorest: 基于Flask/Marshmallow的REST API框架 flask-smorest 是一个用于创建于数据库无关的REST API的架库。 它使用Flask作为Web服务器&#xff0c;并使用marsmallow对数据进行序列化和反序列化。(类似于drf) 快速入门 flask-smorest对代码应…...

android WindowManager的简单使用

<?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"><uses-permission android:name"android.permis…...

Spark_Spark比mapreduce快的原因

Spark 为什么比 mapreduce 快? 最重要的3点&#xff0c; 数据缓存 : 中间结果可以缓存在内存中复用 资源管理 &#xff1a;executor task 管理&#xff0c;不同stage的task可以运行在同一个executor上 任务调度 : dag 对比多阶段mr 1.任务模型的优化&#xff08;DAG图对比…...

el-upload调用内部方法删除文件

从Element UI 的官方文档中&#xff0c; Upload 上传组组件提供了on-remove和before-remove的文件删除的钩子属性&#xff08;回调方法名&#xff09;&#xff0c;但如何调用组件删除方法&#xff08;让该方法删除本地上传文件列表以及触发这两个钩子&#xff09;并无相关说明。…...

无涯教程-JavaScript - CUBEKPIMEMBER函数

描述 该函数返回关键绩效指标(KPI)属性,并在单元格中显示KPI名称。 语法 CUBEKPIMEMBER (connection, kpi_name, kpi_property, [caption])争论 Argument描述Required/OptionalconnectionName of the connection to the cube - A text stringRequiredkpi_nameName of the K…...

代码随想录Day_52打卡

①、最长递增子序列 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序…...

692. 前K个高频单词

题目来源&#xff1a;力扣 题目描述&#xff1a; 给定一个单词列表 words 和一个整数 k &#xff0c;返回前 k 个出现次数最多的单词。 返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率&#xff0c; 按字典顺序 排序。 示例 1&#xff1a; 输入:…...

介绍 Docker 的基本概念和优势,以及在应用程序开发中的实际应用

Docker 是一个开源的容器化平台&#xff0c;可以让开发者将应用程序和其所依赖的组件&#xff08;如库、运行环境&#xff09;打包成一个可移植、自包含的容器。这个容器可以在任何支持 Docker 的环境中运行&#xff0c;包括开发、测试、生产等环境。Docker 的基本概念包括以下…...