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应用。学习起来!😊
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
SpringBoot注解详解:从核心到Web,从数据到测试,一网打尽
总结的了平时学习springboot常用的一些注解,方便以后开发时可以阅览回忆 springboot的常用注解可以分为以下几类: 核心注解:这些注解是springboot的基础,用于启动、配置和管理springboot应用。Web MVC注解:这些注解是…...
![](https://www.ngui.cc/images/no-images.jpg)
Java寻找奇数
1.题目描述 现在有一个长度为 n 的正整数序列,其中只有一种数值出现了奇数次,其他数值均出现偶数次,请你找出那个出现奇数次的数值。 输入描述: 第一行:一个整数n,表示序列的长度。第二行:n个…...
![](https://img-blog.csdnimg.cn/img_convert/1bd34bc518f7e7eaab57ba857bb75475.png)
WinPlan经营大脑:精准预测,科学决策,助力企业赢得未来
近年,随着国内掀起数字化浪潮,“企业数字化转型”成为大势所趋下的必选项。但数据显示,大约79%的中小企业还处于数字化转型初期,在“企业经营管理”上存在着巨大的挑战和风险。 WinPlan经营大脑针对市场现存的企业经营管理难题,提供一站式解决方案,助力企业经营管理转型…...
![](https://www.ngui.cc/images/no-images.jpg)
多数据源切换以及事务处理
SpringBoot 多数据源切换(超级简单)_springboot数据源切换_Tz.的博客-CSDN博客 springboot dynamic多数据源demo以及常见切换、事务问题_一片星空~的博客-CSDN博客...
![](https://img-blog.csdnimg.cn/4b909ac7b5c74cec81fd4aeaa4c760c2.png)
docker 重装提示 Exising installation is up to date 解决方法
Windows Docker 重装提示 Exising installation is up to date 解决方法 出现这个问题是因为卸载Docker没有卸载干净,导致无法重装 解决方法: 按下WindowR唤起命令输入界面,输入 regedit 打开注册表编辑在地址栏输入HKEY_LOCAL_MACHINE\SOFTW…...
![](https://www.ngui.cc/images/no-images.jpg)
k8s分散部署节点之pod反亲和性(podAntiAffinity)
使用背景和场景 业务中的某个关键服务,配置了多个replica,结果在部署时,发现多个相同的副本同时部署在同一个主机上,结果主机故障时,所有副本同时漂移了,导致服务间断性中断 基于以上背景,实现…...
![](https://www.ngui.cc/images/no-images.jpg)
大A的造血与吸血能力
由于大A持续不赚钱,玩家们就喜欢挑他的毛病,其中之一就是大A的持续吸血能力。网络上也已有人进行了相关统计,这里我想再次梳理。 造血能力 对2022年全部A股的披露数据进行汇总统计。我们重点关注经营性现金流、净利润、持续经营净利润、年度累…...
![](https://img-blog.csdnimg.cn/1b702dbaa4f4479ab92b4aac1404e375.png)
【数据库】使用ShardingSphere+Mybatis-Plus实现读写分离
书接上回:数据库调优方案中数据库主从复制,如何实现读写分离 ShardingSphere 实现读写分离的方式是通过配置数据源的方式,使得应用程序可以在执行读操作和写操作时分别访问不同的数据库实例。这样可以将读取操作分发到多个从库(从…...
![](https://www.ngui.cc/images/no-images.jpg)
【第三方接口】阿里云内容审核SDK的使用
1. 内容审核服务 内容安全是识别服务,支持对图片、视频、文本、语音等对象进行多样化场景检测,有效降低内容违规风险。 目前很多平台都支持内容检测,如阿里云、腾讯云、百度AI、网易云等国内大型互联网公司都对外提供了API。 目前用得较多…...
![](https://img-blog.csdnimg.cn/img_convert/d690a72d697431ca9a81495d77ef2e5d.jpeg)
IDEA软件安装包分享(附安装教程)
目录 一、软件简介 二、软件下载 一、软件简介 IntelliJ IDEA是一款流行的Java集成开发环境(IDE),由捷克软件开发公司JetBrains开发。它专为Java开发人员设计,提供了许多高级功能和工具,使得开发人员能够更高效地编写…...
![](https://img-blog.csdnimg.cn/1989b9e7099b4df08844888c89970867.png)
尚硅谷宋红康MySQL笔记 10-13
是记录,我不会记录的特别详细 第10章 创建和管理表 标识符命名规则 数据库名、表名不得超过30个字符,变量名限制为29个只能包含 A–Z, a–z, 0–9, _共63个字符数据库名、表名、字段名等对象名中间不要包含空格同一个MySQL软件中,数据库不能…...
![](https://img-blog.csdnimg.cn/36fa4235bbb04080ab7e7599a6746d46.png)
【ag-grid-vue】基本使用
ag-grid是一款功能和性能强大外观漂亮的表格插件,ag-grid几乎能满足你对数据表格所有需求。固定列、拖动列大小和位置、多表头、自定义排序等等各种常用又必不可少功能。关于收费的问题,绝大部分应用用免费的社区版就够了,ag-grid-community社…...
![](https://img-blog.csdnimg.cn/81c43455749a4c60aa637a7bfbaa7115.jpg)
学习JAVA打卡第四十四天
Scanner类 ⑴Scanner对象 scanner对象可以解析字符序列中的单词。 例如:对于string对象NBA 为了解析出NBA的字符序列中的单词,可以如下构造一个scanner对象。 将正则表达式作为分隔标记,即让scanner对象在解析操作时把与正则表达式匹配的字…...
![](https://www.ngui.cc/images/no-images.jpg)
Excel通用表头及单元格合并
要在Java中实现XLS文件中的通用表头合并和单元格合并,您可以使用Apache POI库。下面是一个示例代码,展示了如何实现这两个功能: import org.apache.poi.hssf.usermodel.*; import org.apache.poi.ss.usermodel.*;import java.io.FileOutputS…...
![](https://www.ngui.cc/images/no-images.jpg)
微信小程序 自定义全局事件监听实现
一般app页面都需要关联刷新,比如登录后刷新登录前页面,故此,需要一个全局事件监听类,怎么实现呢? 根目录创建文件夹utils,新建文件eventBus.js(致敬java平台的EventBus),…...
![](https://img-blog.csdnimg.cn/5a7eac0e7d67420581f86b3e2231e46b.png)
NC65 树表型参照 搜索全部 按钮点击事件后获取sql的方法
NC65 树表型参照 搜索全部 按钮点击事件后获取sql的方法。 /*** 返回 UIbtnLocQuery 特性值。* * return nc.ui.pub.beans.UIButton*/ /* 警告:此方法将重新生成。 */ private nc.ui.pub.beans.UIButton getUIbtnLocQuery() {// 搜索全部 按钮return getButtonPan…...
![](https://www.ngui.cc/images/no-images.jpg)
在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…...
![](https://www.ngui.cc/images/no-images.jpg)
前端面试相关
HTML5 新特征 ✅ HTML5 与es6 新特性cookie 与 sessionStorage 和 localStorage 的区别 ✅Cookie 和localStorage、SessionStorage 区别事件冒泡和事件捕获 ✅ 事件捕获和事件冒泡垂直居中 DIV ✅ 元素垂直水平居中的多种办法(块级 行内元素)两栏布局左边…...
![](https://img-blog.csdnimg.cn/097f7aea6100488cb4224f42c8cb4b04.png)
在ubuntu上部署label-studio
1. 安装label-studio 由于服务器的默认python3版本太低,尝试了很多方法,没有升级。因此采用annaconda方式安装label-studio. a.安装anaconda: 参照如下链接,安装anaconda。 Ubuntu安装Anaconda详细步骤(Ubuntu22.04.1ÿ…...
![](https://img-blog.csdnimg.cn/086e6c599ad84ec78d20f8de1438f67d.png)
HashSet
HashSet集合底层采取哈希表存储数据 哈希表是一种对于增删改查数据性能都较好的结构 hashCode方法和equals方法的配合流程 当添加对象的时候,会先调用对象的hashCode方法计算出一个应该存入的索引位置,查看该位置上是否存在元素 不存在:直接存…...
![](https://img-blog.csdnimg.cn/d7360b3acfa3425195423452b6917937.png)
Java-继承和多态(下)
补全构造方法 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);while (scanner.hasNextInt()) {int x scanner.nextInt();int y scanner.nextInt();int z scanner.nextInt();Sub sub new…...
![](https://img-blog.csdnimg.cn/27f91651790e4ba09e6f814c5c462331.png)
Docker搭建并配置Prometheus
首先确保Linux已安装Docker,如未安装请先参考:Linux安装Docker 1.安装准备 创建挂载目录 /opt/prometheus/data目录,准备用来挂载放置prometheus的数据 /opt/prometheus/config目录,准备用来放置prometheus的配置文件 /opt/pro…...
![](https://img-blog.csdnimg.cn/img_convert/82b9e63abe03db6de507a97744fb3dff.png)
“解放 Arweave“优惠:4EVERLAND的无缝上传教程
为了进一步展示 Arweave 的能力,4EVERLAND 骄傲地推出了“解放 Arweave”活动。我们认识到 Arweave 在数据完整性、抗审查性以及长期保存方面的无与伦比的优势,因此我们与这个去中心化的存储巨头建立了强大的集成。 克服了过去与加密货币支付逻辑相关的…...
![](https://img-blog.csdnimg.cn/44060e5956764d66aed2b8a12d2fe0bb.png)
系统学习Linux-LVS集群
集群概述 负载均衡技术类型 四层负载均衡器 也称为 4 层交换机,主要通过分析 IP 层及 TCP/UDP 层的流量实现基于 IP 加端口的负载均衡,如常见的 LVS、F5 等; 七层负载均衡器 也称为 7 层交换机,位于 OSI 的最高层,即…...
![](https://www.ngui.cc/images/no-images.jpg)
使用matplotlib绘制动图
主程序如下: 项目:701项目三分报告 作者:WN 内容:速度障碍法实现 时间:2023年8月26号import numpy as np import pandas as pd import matplotlib.pyplot as plt from matplotlib import animation from utils import *uav1 Agen…...
![](https://img-blog.csdnimg.cn/ce1014289ac24a8bb69a3c1b8f692a1a.png)
加油站ai视觉分析检测预警
加油站ai视觉分析预警系统通过yolov8图像识别和行为分析,加油站ai视觉分析预警算法识别出打电话抽烟、烟火行为、静电释放时间是否合规、灭火器摆放以及人员工服等不符合规定的行为,并发出预警信号以提醒相关人员。YOLOv8 的推理过程和 YOLOv5 几乎一样&…...
![](https://img-blog.csdnimg.cn/36a375c5f5594525b2e809fd1dfae47c.png)
Docker构建镜像
Docker根据Dockerfile文件构建镜像 在实际生产中,常常使用Dockerfile构建企业级生产环境镜像,然后再部署在我们的生产环境中,本文将从从零开始介绍Dockerfile如何使用,构建镜像。 Dockerhub官网地址:https://registry.hub.docke…...
![](https://img-blog.csdnimg.cn/d6793ff0f8514bd680728813da002c15.jpeg#pic_center)
【太多网工对NAT还存在这4种误解!你是其中一个吗?】
NAT是解决公网地址不够用大家最熟悉的网络技术之一,而NAT最依赖的是NAT translation表项,至于NAT的概念和背景这里不再解释,网络上有很多关于此的类似介绍,自己搜索即可。下面主要是针对大家对NAT的一些误解进行分析。 1 误解一…...
![](https://www.ngui.cc/images/no-images.jpg)
React钩子函数之useEffect,useLayoutEffect与useInsertionEffect的区别
React钩子函数在React开发中扮演着非常重要的角色。其中,useEffect、useLayoutEffect和useInsertionEffect是三个常用的钩子函数,它们的作用虽然有些相似,但是也存在一些区别。在本文中,我们将详细介绍这三个钩子函数的区别&#…...
![](https://img-blog.csdnimg.cn/5cb9d2881f194203b13c763d318fc307.png)
Unity——后期处理举例
Post Processing(后期处理)并不属于特效,但现代的特效表现离不开后期处理的支持。本文以眩光(Bloom)为例,展示一种明亮的激光的制作方法 1、安装后期处理扩展包 较新的Unity版本已经内置了新版的后期处理扩…...
![](http://5b0988e595225.cdn.sohucs.com/images/20181225/b69755f053cc43279467989b60bde2cf.png)
商务网站建设的一般流程是什么/什么是软文
临近2018年底,我们阿里云上的一台ECS服务器竟然被阿里云短信提示有挖矿程序,多次收到阿里云的短信提醒说什么服务器被植入挖矿程序,造成系统资源大量消耗;而且还收到CPU使用率达到百分之90的安全提醒,我们的服务器上并…...
![](https://www.oschina.net/img/hot3.png)
做网站 分辨率应该是多少/全网营销推广方式
为什么80%的码农都做不了架构师?>>> 用VS2010打开项目或解决方案时,弹出一个目录框,会多出一个一个Microsoft Visual Studio 2010目录。里面的project目录通常不是我们平常使用的目录,这样我需要自己点开自己的目录&a…...
![](/images/no-images.jpg)
做网站需要哪些硬件软件/上海b2b网络推广外包
由于网上曾经流传过一段时间来自ASTGO官方的ASTGO体验版(下载地址:http://www.51voip.org/post/33.html),这个版本有个特色就是安装后不需要激活码激活即可打通电话,但是会随机显示4-30线内并发,基本上不会超过10线并发࿰…...
![](/images/no-images.jpg)
网站建设与管理试题及答案/营销软文300字
j2me : 我 new TextField("Id: " , "" , 30 , TextField.NUMERIC) ; 但是当我提交form的时候始终无法提交完成,也就是成功后的页面跳转,最后才发现,当我输入数字长度超过 10 , form就无法提交&…...
![](/images/no-images.jpg)
潍坊做网站维护费用/无锡网站建设公司
问题现象 在使用模拟器调试时,出现以下错误提示,导致不能连续运行: *** Error 65: Access violation at 0x40000004 : No write permission 解决措施 将以下内容保存为debug_Cortex-M_use_simulator.ini脚本文件,并根据CPU的外…...
做商城网站需要多少钱/哪家建设公司网站
学习目录:(分模块讲解) 1、文件处理命令 2、权限管理命令 3、文件搜索命令 4、帮助命令 5、用户管理命令 6、压缩命令 7、网络命令 8、关进重启命令 一个Linux命令在线查询手册: http://linux.51yip.com/ 一个在线Linux系统练习&a…...