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

SpringBoot注解详解:从核心到Web,从数据到测试,一网打尽

总结的了平时学习springboot常用的一些注解,方便以后开发时可以阅览回忆

springboot的常用注解可以分为以下几类:

  • 核心注解:这些注解是springboot的基础,用于启动、配置和管理springboot应用。
  • Web MVC注解:这些注解是基于spring MVC框架的,用于处理Web请求和响应。
  • 数据访问注解:这些注解是基于spring data框架的,用于操作数据库和缓存。
  • 测试注解:这些注解是基于spring test框架的,用于编写和运行单元测试和集成测试。

下面分别介绍这些注解的具体含义和用法。


目录

一、核心注解

1、@SpringBootApplication

2、@SpringBootConfiguration

3、@EnableAutoConfiguration

4、@ComponentScan

5、@Component

6、@Configuration

7、@Bean

8、@Import

9、@ImportResource

10、@Autowired

二、Web MVC注解

1、@Controller

2、@RestController

3、@RequestMapping

4、@GetMapping

5、@PostMapping

三、数据访问注解

1、@Repository

2、@JpaRepository

3、@Query

4、@Param

5、@Modifying

6、@Transactional

7、@Cacheable

四、测试注解

1、@SpringBootTest

2、@RunWith

3、@Test

4、@Before

5、@After

6、@BeforeClass

7、@AfterClass

8、@MockBean

9、@SpyBean

总结


一、核心注解

1、@SpringBootApplication

这是springboot最核心的注解,用在主类上,表示这是一个springboot应用,它包含了以下三个注解:

  • @Configuration:表示这是一个配置类,相当于传统的XML配置文件,可以使用@Bean注解定义需要注册到spring容器中的bean。
  • @EnableAutoConfiguration:表示启用自动配置,根据当前类路径下的依赖包,自动配置合适的bean,如数据库连接池、事务管理器、Web服务器等。
  • @ComponentScan:表示扫描当前包及其子包下的所有组件,并注册为bean,如控制器、服务、仓库等。

2、@SpringBootConfiguration

这是一个组合注解,相当于@Configuration和@EnableAutoConfiguration的结合。它可以用在主类上,也可以用在其他配置类上,表示这是一个springboot配置类。

3、@EnableAutoConfiguration

这是一个组合注解,相当于@AutoConfigurationPackage和@Import(AutoConfigurationImportSelector.class)的结合。它可以用在主类上,也可以用在其他配置类上,表示启用自动配置。它会根据当前类路径下的依赖包,自动导入对应的自动配置类,并注册相关的bean。如果不想使用某些自动配置类,可以使用exclude或excludeName属性进行排除。

4、@ComponentScan

这是一个组合注解,相当于@Retention(RetentionPolicy.RUNTIME)、@Target(ElementType.TYPE)、@Documented、@Inherited和@Repeatable(ComponentScans.class)的结合。它可以用在主类上,也可以用在其他配置类上,表示扫描指定包下的所有组件,并注册为bean。它有以下几个属性:

  • value或basePackages:指定要扫描的包名或包名数组。
  • basePackageClasses:指定要扫描的包含组件的类或类数组。
  • includeFilters:指定要包含的过滤器或过滤器数组。
  • excludeFilters:指定要排除的过滤器或过滤器数组。
  • lazyInit:指定是否延迟初始化bean,默认为false。
  • nameGenerator:指定bean名称生成器,默认为AnnotationBeanNameGenerator。
  • scopeResolver:指定bean作用域解析器,默认为AnnotationScopeMetadataResolver。
  • scopedProxy:指定是否使用代理创建作用域bean,默认为ScopedProxyMode.DEFAULT。
  • resourcePattern:指定要扫描的资源模式,默认为"**/*.class"。
  • useDefaultFilters:指定是否使用默认的过滤器,默认为true。

5、@Component

这是一个通用的注解,表示这是一个组件,可以被spring容器扫描和管理。它可以用在任何类上,也可以作为其他注解的元注解,如@Controller、@Service、@Repository等。

6、@Configuration

这是一个组合注解,相当于@Component和@Scope(“singleton”)的结合。它表示这是一个配置类,可以使用@Bean注解定义需要注册到spring容器中的bean。它可以用在任何类上,也可以作为其他注解的元注解,如@SpringBootConfiguration等。

7、@Bean

这是一个方法级别的注解,表示该方法返回的对象是一个bean,需要注册到spring容器中。它只能用在被@Configuration或@Component等注解标记的类中。它有以下几个属性:

  • name或value:指定bean的名称或名称数组,默认为方法名。
  • initMethod:指定bean的初始化方法名,默认为空。
  • destroyMethod:指定bean的销毁方法名,默认为"(inferred)",表示自动推断。
  • autowire:指定bean的自动装配模式,默认为Autowire.NO。
  • autowireCandidate:指定bean是否是自动装配候选者,默认为true。
  • primary:指定bean是否是首选候选者,默认为false。

8、@Import

这是一个类级别的注解,表示导入其他配置类或组件类,并注册为bean12。它可以用在任何类上,也可以作为其他注解的元注解,如@EnableAutoConfiguration等。它有以下几种用法:

  • @Import(Class<?>…):导入一个或多个配置类或组件类,并注册为bean。
  • @Import(ImportSelector.class):导入一个实现了ImportSelector接口的类,并根据其返回值导入对应的配置类或组件类,并注册为bean。
  • @Import(ImportBeanDefinitionRegistrar.class):导入一个实现了ImportBeanDefinitionRegistrar接口的类,并根据其逻辑注册对应的bean定义。

9、@ImportResource

这是一个类级别的注解,表示导入一个或多个XML配置文件,并将其中定义的bean注册到spring容器中12。它可以用在任何类上,也可以作为其他注解的元注解。它有以下两个属性:

  • value或locations:指定要导入的XML配置文件的路径或路径数组。
  • reader:指定用于读取XML配置文件的BeanDefinitionReader实现类,默认为XmlBeanDefinitionReader。

10、@Autowired

这是一个字段级别或方法级别的注解,表示自动装配依赖的bean12。它可以用在任何字段或方法上,也可以作为其他注解的元注解。它有以下两个属性:

  • required:指定依赖的bean是否必须存在,默认为true。
  • value:指定依赖的bean的名称,默认为空。

二、Web MVC注解

1、@Controller

这是一个组合注解,相当于@Component和@ControllerAdvice的结合 。它表示这是一个控制器类,可以处理Web请求,并返回视图或数据。它可以用在任何类上,也可以作为其他注解的元注解,如@RestController等。

2、@RestController

这是一个组合注解,相当于@Controller和@ResponseBody的结合 。它表示这是一个REST风格的控制器类,可以处理Web请求,并返回JSON或XML格式的数据。它可以用在任何类上,也可以作为其他注解的元注解。

3、@RequestMapping

这是一个类级别或方法级别的注解,表示映射Web请求到对应的处理方法 。它可以用在任何类或方法上,也可以作为其他注解的元注解,如@GetMapping、@PostMapping等。它有以下几个属性:

  • value或path:指定要映射的请求路径或路径数组。
  • method:指定要映射的请求方法或方法数组,如GET、POST等。
  • params:指定要映射的请求参数或参数数组,如"username"、"age!=10"等。
  • headers:指定要映射的请求头或头数组,如"Accept=application/json"、"Content-Type=text/plain"等。
  • consumes:指定要映射的请求内容类型或类型数组,如"application/json"、"text/plain"等。
  • produces:指定要映射的响应内容类型或类型数组,如"application/json"、"text/plain"等。
  • name:指定映射的名称,默认为空。

4、@GetMapping

这是一个组合注解,相当于@RequestMapping(method = RequestMethod.GET)的结合 。它表示映射GET请求到对应的处理方法。它可以用在任何方法上,也可以作为其他注解的元注解。它有以下几个属性:

  • value或path:指定要映射的请求路径或路径数组。
  • params:指定要映射的请求参数或参数数组。
  • headers:指定要映射的请求头或头数组。
  • consumes:指定要映射的请求内容类型或类型数组。
  • produces:指定要映射的响应内容类型或类型数组。
  • name:指定映射的名称,默认为空。

5、@PostMapping

这是一个组合注解,相当于@RequestMapping(method = RequestMethod.POST)的结合 。它表示映射POST请求到对应的处理方法。它可以用在任何方法上,也可以作为其他注解的元注解。它有以下几个属性:

  • value或path:指定要映射的请求路径或路径数组。
  • params:指定要映射的请求参数或参数数组。
  • headers:指定要映射的请求头或头数组。
  • consumes:指定要映射的请求内容类型或类型数组。
  • produces:指定要映射的响应内容类型或类型数组。
  • name:指定映射的名称,默认为空。

三、数据访问注解

1、@Repository

这是一个组合注解,相当于@Component和@RepositoryDefinition的结合 。它表示这是一个仓库类,用于封装数据访问逻辑。它可以用在任何类上,也可以作为其他注解的元注解,如@JpaRepository等。它有以下两个属性:

  • value:指定仓库的名称,默认为空。
  • transactionManagerRef:指定事务管理器的引用,默认为空。

2、@JpaRepository

这是一个组合注解,相当于@Repository和@QueryByExampleExecutor的结合 。它表示这是一个基于JPA的仓库接口,可以继承CrudRepository或PagingAndSortingRepository,并提供一些额外的方法,如saveAndFlush、deleteInBatch等。它可以用在任何接口上,也可以作为其他注解的元注解。它有以下两个属性:

  • value:指定仓库操作的实体类,默认为空。
  • transactionManagerRef:指定事务管理器的引用,默认为空。

3、@Query

这是一个方法级别的注解,表示使用自定义的查询语句来执行数据访问操作 。它可以用在任何方法上,也可以作为其他注解的元注解。它有以下几个属性:

  • value或nativeQuery:指定查询语句或原生查询语句,默认为空。
  • countQuery或countProjection:指定用于分页查询时计算总数的查询语句或投影字段,默认为空。
  • name:指定命名查询的名称,默认为空。
  • countName:指定用于分页查询时计算总数的命名查询的名称,默认为空。
  • clearAutomatically:指定是否在执行更新或删除操作后自动清除持久化上下文,默认为false。
  • flushAutomatically:指定是否在执行更新或删除操作前自动刷新持久化上下文,默认为false。

4、@Param

这是一个参数级别的注解,表示将方法参数绑定到查询语句中的占位符或命名参数 。它只能用在被@Query等注解标记的方法中。它有以下一个属性:

  • value:指定参数绑定到查询语句中的占位符或命名参数,默认为空。

5、@Modifying

这是一个方法级别的注解,表示该方法执行更新或删除操作 。它只能用在被@Query等注解标记的方法中。它有以下两个属性:

  • clearAutomatically:指定是否在执行更新或删除操作后自动清除持久化上下文,默认为false。
  • flushAutomatically:指定是否在执行更新或删除操作前自动刷新持久化上下文,默认为false。

6、@Transactional

这是一个类级别或方法级别的注解,表示该类或方法需要进行事务管理 。它可以用在任何类或方法上,也可以作为其他注解的元注解。它有以下几个属性:

  • value或transactionManager:指定事务管理器的名称或引用,默认为空。
  • propagation:指定事务传播行为,默认为Propagation.REQUIRED。
  • isolation:指定事务隔离级别,默认为Isolation.DEFAULT。
  • timeout:指定事务超时时间(秒),默认为-1(不超时)。
  • readOnly:指定事务是否只读,默认为false。
  • rollbackFor或rollbackForClassName:指定需要回滚事务的异常类或类名数组,默认为空(所有异常都回滚)。
  • noRollbackFor或noRollbackForClassName:指定不需要回滚事务的异常类或类名数组,默认为空(所有异常都回滚)。

7、@Cacheable

这是一个方法级别的注解,表示该方法的返回值需要缓存 。它可以用在任何方法上,也可以作为其他注解的元注解。它有以下几个属性:

  • value或cacheNames:指定缓存的名称或名称数组,默认为空。
  • key:指定缓存的键,默认为方法参数的哈希值。
  • keyGenerator:指定缓存的键生成器,默认为空。
  • cacheManager:指定缓存管理器的名称或引用,默认为空。
  • cacheResolver:指定缓存解析器的名称或引用,默认为空。
  • condition:指定缓存的条件,只有满足条件才进行缓存,默认为空。
  • unless:指定缓存的否定条件,只有不满足条件才进行缓存,默认为空。
  • sync:指定是否使用同步模式进行缓存,默认为false。

四、测试注解

1、@SpringBootTest

这是一个类级别的注解,表示该类是一个springboot测试类,可以加载完整的springboot应用上下文 。它可以用在任何类上,也可以作为其他注解的元注解。它有以下几个属性:

  • value或properties:指定要添加或覆盖的配置属性或属性数组,默认为空。
  • classes:指定要加载的配置类或类数组,默认为空。
  • webEnvironment:指定Web环境的类型,默认为WebEnvironment.MOCK。
  • args:指定要传递给springboot应用的命令行参数或参数数组,默认为空。

2、@RunWith

这是一个类级别的注解,表示使用指定的运行器来执行测试类 。它可以用在任何类上,也可以作为其他注解的元注解。它有以下一个属性:

  • value:指定要使用的运行器类,默认为空。

3、@Test

这是一个方法级别的注解,表示该方法是一个测试方法,需要被运行器执行 。它可以用在任何方法上,也可以作为其他注解的元注解。它有以下两个属性:

  • expected:指定期望抛出的异常类,默认为None.class(不期望抛出异常)。
  • timeout:指定测试方法的超时时间(毫秒),默认为0(不超时)。

4、@Before

这是一个方法级别的注解,表示该方法需要在每个测试方法之前执行 。它可以用在任何方法上,也可以作为其他注解的元注解。

5、@After

这是一个方法级别的注解,表示该方法需要在每个测试方法之后执行 。它可以用在任何方法上,也可以作为其他注解的元注解。

6、@BeforeClass

这是一个静态方法级别的注解,表示该方法需要在所有测试方法之前执行一次 。它只能用在静态方法上,也可以作为其他注解的元注解。

7、@AfterClass

这是一个静态方法级别的注解,表示该方法需要在所有测试方法之后执行一次 。它只能用在静态方法上,也可以作为其他注解的元注解。

8、@MockBean

这是一个字段级别或方法级别的注解,表示该字段或方法返回值需要被模拟成一个bean,并注册到spring容器中 。它可以用在任何字段或方法上,也可以作为其他注解的元注解。它有以下两个属性:

  • name:指定模拟bean的名称,默认为空。
  • reset:指定模拟bean是否需要在每个测试方法之后重置,默认为MockReset.AFTER。

9、@SpyBean

这是一个字段级别或方法级别的注解,表示该字段或方法返回值需要被包装成一个spy对象,并注册到spring容器中 。它可以用在任何字段或方法上,也可以作为其他注解的元注解。它有以下两个属性:

  • name:指定spy对象的名称,默认为空。
  • reset:指定spy对象是否需要在每个测试方法之后重置,默认为MockReset.AFTER。

总结

springboot提供了许多方便实用的注解,可以帮助开发者快速配置、启动、管理、访问和测试springboot应用。学习起来!😊

相关文章:

SpringBoot注解详解:从核心到Web,从数据到测试,一网打尽

总结的了平时学习springboot常用的一些注解&#xff0c;方便以后开发时可以阅览回忆 springboot的常用注解可以分为以下几类&#xff1a; 核心注解&#xff1a;这些注解是springboot的基础&#xff0c;用于启动、配置和管理springboot应用。Web MVC注解&#xff1a;这些注解是…...

Java寻找奇数

1.题目描述 现在有一个长度为 n 的正整数序列&#xff0c;其中只有一种数值出现了奇数次&#xff0c;其他数值均出现偶数次&#xff0c;请你找出那个出现奇数次的数值。 输入描述&#xff1a; 第一行&#xff1a;一个整数n&#xff0c;表示序列的长度。第二行&#xff1a;n个…...

WinPlan经营大脑:精准预测,科学决策,助力企业赢得未来

近年,随着国内掀起数字化浪潮,“企业数字化转型”成为大势所趋下的必选项。但数据显示,大约79%的中小企业还处于数字化转型初期,在“企业经营管理”上存在着巨大的挑战和风险。 WinPlan经营大脑针对市场现存的企业经营管理难题,提供一站式解决方案,助力企业经营管理转型…...

多数据源切换以及事务处理

SpringBoot 多数据源切换&#xff08;超级简单&#xff09;_springboot数据源切换_Tz.的博客-CSDN博客 springboot dynamic多数据源demo以及常见切换、事务问题_一片星空&#xff5e;的博客-CSDN博客...

docker 重装提示 Exising installation is up to date 解决方法

Windows Docker 重装提示 Exising installation is up to date 解决方法 出现这个问题是因为卸载Docker没有卸载干净&#xff0c;导致无法重装 解决方法&#xff1a; 按下WindowR唤起命令输入界面&#xff0c;输入 regedit 打开注册表编辑在地址栏输入HKEY_LOCAL_MACHINE\SOFTW…...

k8s分散部署节点之pod反亲和性(podAntiAffinity)

使用背景和场景 业务中的某个关键服务&#xff0c;配置了多个replica&#xff0c;结果在部署时&#xff0c;发现多个相同的副本同时部署在同一个主机上&#xff0c;结果主机故障时&#xff0c;所有副本同时漂移了&#xff0c;导致服务间断性中断 基于以上背景&#xff0c;实现…...

大A的造血与吸血能力

由于大A持续不赚钱&#xff0c;玩家们就喜欢挑他的毛病&#xff0c;其中之一就是大A的持续吸血能力。网络上也已有人进行了相关统计&#xff0c;这里我想再次梳理。 造血能力 对2022年全部A股的披露数据进行汇总统计。我们重点关注经营性现金流、净利润、持续经营净利润、年度累…...

【数据库】使用ShardingSphere+Mybatis-Plus实现读写分离

书接上回&#xff1a;数据库调优方案中数据库主从复制&#xff0c;如何实现读写分离 ShardingSphere 实现读写分离的方式是通过配置数据源的方式&#xff0c;使得应用程序可以在执行读操作和写操作时分别访问不同的数据库实例。这样可以将读取操作分发到多个从库&#xff08;从…...

【第三方接口】阿里云内容审核SDK的使用

1. 内容审核服务 内容安全是识别服务&#xff0c;支持对图片、视频、文本、语音等对象进行多样化场景检测&#xff0c;有效降低内容违规风险。 目前很多平台都支持内容检测&#xff0c;如阿里云、腾讯云、百度AI、网易云等国内大型互联网公司都对外提供了API。 目前用得较多…...

IDEA软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 IntelliJ IDEA是一款流行的Java集成开发环境&#xff08;IDE&#xff09;&#xff0c;由捷克软件开发公司JetBrains开发。它专为Java开发人员设计&#xff0c;提供了许多高级功能和工具&#xff0c;使得开发人员能够更高效地编写…...

尚硅谷宋红康MySQL笔记 10-13

是记录&#xff0c;我不会记录的特别详细 第10章 创建和管理表 标识符命名规则 数据库名、表名不得超过30个字符&#xff0c;变量名限制为29个只能包含 A–Z, a–z, 0–9, _共63个字符数据库名、表名、字段名等对象名中间不要包含空格同一个MySQL软件中&#xff0c;数据库不能…...

【ag-grid-vue】基本使用

ag-grid是一款功能和性能强大外观漂亮的表格插件&#xff0c;ag-grid几乎能满足你对数据表格所有需求。固定列、拖动列大小和位置、多表头、自定义排序等等各种常用又必不可少功能。关于收费的问题&#xff0c;绝大部分应用用免费的社区版就够了&#xff0c;ag-grid-community社…...

学习JAVA打卡第四十四天

Scanner类 ⑴Scanner对象 scanner对象可以解析字符序列中的单词。 例如&#xff1a;对于string对象NBA 为了解析出NBA的字符序列中的单词&#xff0c;可以如下构造一个scanner对象。 将正则表达式作为分隔标记&#xff0c;即让scanner对象在解析操作时把与正则表达式匹配的字…...

Excel通用表头及单元格合并

要在Java中实现XLS文件中的通用表头合并和单元格合并&#xff0c;您可以使用Apache POI库。下面是一个示例代码&#xff0c;展示了如何实现这两个功能&#xff1a; import org.apache.poi.hssf.usermodel.*; import org.apache.poi.ss.usermodel.*;import java.io.FileOutputS…...

微信小程序 自定义全局事件监听实现

一般app页面都需要关联刷新&#xff0c;比如登录后刷新登录前页面&#xff0c;故此&#xff0c;需要一个全局事件监听类&#xff0c;怎么实现呢&#xff1f; 根目录创建文件夹utils&#xff0c;新建文件eventBus.js&#xff08;致敬java平台的EventBus&#xff09;&#xff0c…...

NC65 树表型参照 搜索全部 按钮点击事件后获取sql的方法

NC65 树表型参照 搜索全部 按钮点击事件后获取sql的方法。 /*** 返回 UIbtnLocQuery 特性值。* * return nc.ui.pub.beans.UIButton*/ /* 警告&#xff1a;此方法将重新生成。 */ private nc.ui.pub.beans.UIButton getUIbtnLocQuery() {// 搜索全部 按钮return getButtonPan…...

在SpringBoot使用MongoDB时出现的bug和解决

在springboot使用MongoDB时出现的bug和解决 在springboot整合MongoDB时,报错 在springboot整合MongoDB时,报错 INFO 67135 — [ main] org.mongodb.driver.connection : Closed connection [connectionId{localValue:2}] to 127.0.0.1:27017 because there was a socket excep…...

前端面试相关

HTML5 新特征 ✅ HTML5 与es6 新特性cookie 与 sessionStorage 和 localStorage 的区别 ✅Cookie 和localStorage、SessionStorage 区别事件冒泡和事件捕获 ✅ 事件捕获和事件冒泡垂直居中 DIV ✅ 元素垂直水平居中的多种办法&#xff08;块级 行内元素&#xff09;两栏布局左边…...

在ubuntu上部署label-studio

1. 安装label-studio 由于服务器的默认python3版本太低&#xff0c;尝试了很多方法&#xff0c;没有升级。因此采用annaconda方式安装label-studio. a.安装anaconda: 参照如下链接&#xff0c;安装anaconda。 Ubuntu安装Anaconda详细步骤&#xff08;Ubuntu22.04.1&#xff…...

HashSet

HashSet集合底层采取哈希表存储数据 哈希表是一种对于增删改查数据性能都较好的结构 hashCode方法和equals方法的配合流程 当添加对象的时候&#xff0c;会先调用对象的hashCode方法计算出一个应该存入的索引位置&#xff0c;查看该位置上是否存在元素 不存在&#xff1a;直接存…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

实战三:开发网页端界面完成黑白视频转为彩色视频

​一、需求描述 设计一个简单的视频上色应用&#xff0c;用户可以通过网页界面上传黑白视频&#xff0c;系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观&#xff0c;不需要了解技术细节。 效果图 ​二、实现思路 总体思路&#xff1a; 用户通过Gradio界面上…...

leetcode73-矩阵置零

leetcode 73 思路 记录 0 元素的位置&#xff1a;遍历整个矩阵&#xff0c;找出所有值为 0 的元素&#xff0c;并将它们的坐标记录在数组zeroPosition中置零操作&#xff1a;遍历记录的所有 0 元素位置&#xff0c;将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...