SpringBoot使用手册
SpringBoot使用手册
1、自动装配
1.1、创建spring Boot项目
在之前的文章中已经专门写过,这里不做赘述。
1.2、pom.xml
1.2.1、版本管理
在学习完maven项目后,我们学习框架时首先阅读的就是pom.xml文件,这里是管理自己该项目中所用到的jar包。
学习SpringBoot时也是一样,在创建好一个项目后,我们首先先浏览一下pom.xml。
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.3</version><relativePath/> <!-- lookup parent from repository --></parent>
打开这个文件后,我们首先就能看到上面这串代码,这个和我们之前学习的不太一样,仔细阅读后可以发现,这时导入Springboot父依赖的代码。
什么是父依赖?
当我们按住ctrl,鼠标点击这个依赖,可以发现我们又进入了一个pom文件,在这里,我们又能看到一个父依赖。
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.7.3</version></parent>
再次点击进入,便能发现这里管理着大量的版本信息:
<properties><activemq.version>5.16.5</activemq.version><antlr2.version>2.7.7</antlr2.version><appengine-sdk.version>1.9.98</appengine-sdk.version><artemis.version>2.19.1</artemis.version><aspectj.version>1.9.7</aspectj.version><assertj.version>3.22.0</assertj.version><atomikos.version>4.0.6</atomikos.version><awaitility.version>4.2.0</awaitility.version><build-helper-maven-plugin.version>3.3.0</build-helper-maven-plugin.version><byte-buddy.version>1.12.13</byte-buddy.version><cache2k.version>2.6.1.Final</cache2k.version><caffeine.version>2.9.3</caffeine.version><cassandra-driver.version>4.14.1</cassandra-driver.version><classmate.version>1.5.1</classmate.version><commons-codec.version>1.15</commons-codec.version><commons-dbcp2.version>2.9.0</commons-dbcp2.version><commons-lang3.version>3.12.0</commons-lang3.version><commons-pool.version>1.6</commons-pool.version><commons-pool2.version>2.11.1</commons-pool2.version><couchbase-client.version>3.3.3</couchbase-client.version><db2-jdbc.version>11.5.7.0</db2-jdbc.version><dependency-management-plugin.version>1.0.13.RELEASE</dependency-management-plugin.version><derby.version>10.14.2.0</derby.version><dropwizard-metrics.version>4.2.11</dropwizard-metrics.version><ehcache.version>2.10.9.2</ehcache.version><ehcache3.version>3.10.0</ehcache3.version><elasticsearch.version>7.17.4</elasticsearch.version><embedded-mongo.version>3.4.8</embedded-mongo.version><flyway.version>8.5.13</flyway.version><freemarker.version>2.3.31</freemarker.version><git-commit-id-plugin.version>4.9.10</git-commit-id-plugin.version><glassfish-el.version>3.0.4</glassfish-el.version><glassfish-jaxb.version>2.3.6</glassfish-jaxb.version><glassfish-jstl.version>1.2.6</glassfish-jstl.version><graphql-java.version>18.3</graphql-java.version><groovy.version>3.0.12</groovy.version><gson.version>2.9.1</gson.version><h2.version>2.1.214</h2.version><hamcrest.version>2.2</hamcrest.version><hazelcast.version>5.1.3</hazelcast.version><hazelcast-hibernate5.version>2.2.1</hazelcast-hibernate5.version><hibernate.version>5.6.10.Final</hibernate.version><hibernate-validator.version>6.2.4.Final</hibernate-validator.version><hikaricp.version>4.0.3</hikaricp.version><hsqldb.version>2.5.2</hsqldb.version><htmlunit.version>2.60.0</htmlunit.version><httpasyncclient.version>4.1.5</httpasyncclient.version><httpclient.version>4.5.13</httpclient.version><httpclient5.version>5.1.3</httpclient5.version><httpcore.version>4.4.15</httpcore.version><httpcore5.version>5.1.4</httpcore5.version><infinispan.version>13.0.10.Final</infinispan.version><influxdb-java.version>2.22</influxdb-java.version><jackson-bom.version>2.13.3</jackson-bom.version><jakarta-activation.version>1.2.2</jakarta-activation.version><jakarta-annotation.version>1.3.5</jakarta-annotation.version><jakarta-jms.version>2.0.3</jakarta-jms.version><jakarta-json.version>1.1.6</jakarta-json.version><jakarta-json-bind.version>1.0.2</jakarta-json-bind.version><jakarta-mail.version>1.6.7</jakarta-mail.version><jakarta-management.version>1.1.4</jakarta-management.version><jakarta-persistence.version>2.2.3</jakarta-persistence.version><jakarta-servlet.version>4.0.4</jakarta-servlet.version><jakarta-servlet-jsp-jstl.version>1.2.7</jakarta-servlet-jsp-jstl.version><jakarta-transaction.version>1.3.3</jakarta-transaction.version><jakarta-validation.version>2.0.2</jakarta-validation.version><jakarta-websocket.version>1.1.2</jakarta-websocket.version><jakarta-ws-rs.version>2.1.6</jakarta-ws-rs.version><jakarta-xml-bind.version>2.3.3</jakarta-xml-bind.version><jakarta-xml-soap.version>1.4.2</jakarta-xml-soap.version><jakarta-xml-ws.version>2.3.3</jakarta-xml-ws.version><janino.version>3.1.7</janino.version><javax-activation.version>1.2.0</javax-activation.version><javax-annotation.version>1.3.2</javax-annotation.version><javax-cache.version>1.1.1</javax-cache.version><javax-jaxb.version>2.3.1</javax-jaxb.version><javax-jaxws.version>2.3.1</javax-jaxws.version><javax-jms.version>2.0.1</javax-jms.version><javax-json.version>1.1.4</javax-json.version><javax-jsonb.version>1.0</javax-jsonb.version><javax-mail.version>1.6.2</javax-mail.version><javax-money.version>1.1</javax-money.version><javax-persistence.version>2.2</javax-persistence.version><javax-transaction.version>1.3</javax-transaction.version><javax-validation.version>2.0.1.Final</javax-validation.version><javax-websocket.version>1.1</javax-websocket.version><jaxen.version>1.2.0</jaxen.version><jaybird.version>4.0.6.java8</jaybird.version><jboss-logging.version>3.4.3.Final</jboss-logging.version><jdom2.version>2.0.6.1</jdom2.version><jedis.version>3.8.0</jedis.version><jersey.version>2.35</jersey.version><jetty-el.version>9.0.52</jetty-el.version><jetty-jsp.version>2.2.0.v201112011158</jetty-jsp.version><jetty-reactive-httpclient.version>1.1.12</jetty-reactive-httpclient.version><jetty.version>9.4.48.v20220622</jetty.version><jmustache.version>1.15</jmustache.version><johnzon.version>1.2.18</johnzon.version><jolokia.version>1.7.1</jolokia.version><jooq.version>3.14.16</jooq.version><json-path.version>2.7.0</json-path.version><json-smart.version>2.4.8</json-smart.version><jsonassert.version>1.5.1</jsonassert.version><jstl.version>1.2</jstl.version><jtds.version>1.3.1</jtds.version><junit.version>4.13.2</junit.version><junit-jupiter.version>5.8.2</junit-jupiter.version><kafka.version>3.1.1</kafka.version><kotlin.version>1.6.21</kotlin.version><kotlin-coroutines.version>1.6.4</kotlin-coroutines.version><lettuce.version>6.1.9.RELEASE</lettuce.version><liquibase.version>4.9.1</liquibase.version><log4j2.version>2.17.2</log4j2.version><logback.version>1.2.11</logback.version><lombok.version>1.18.24</lombok.version><mariadb.version>3.0.7</mariadb.version><maven-antrun-plugin.version>3.0.0</maven-antrun-plugin.version><maven-assembly-plugin.version>3.3.0</maven-assembly-plugin.version><maven-clean-plugin.version>3.2.0</maven-clean-plugin.version><maven-compiler-plugin.version>3.10.1</maven-compiler-plugin.version><maven-dependency-plugin.version>3.3.0</maven-dependency-plugin.version><maven-deploy-plugin.version>2.8.2</maven-deploy-plugin.version><maven-enforcer-plugin.version>3.0.0</maven-enforcer-plugin.version><maven-failsafe-plugin.version>2.22.2</maven-failsafe-plugin.version><maven-help-plugin.version>3.2.0</maven-help-plugin.version><maven-install-plugin.version>2.5.2</maven-install-plugin.version><maven-invoker-plugin.version>3.2.2</maven-invoker-plugin.version><maven-jar-plugin.version>3.2.2</maven-jar-plugin.version><maven-javadoc-plugin.version>3.4.1</maven-javadoc-plugin.version><maven-resources-plugin.version>3.2.0</maven-resources-plugin.version><maven-shade-plugin.version>3.3.0</maven-shade-plugin.version><maven-source-plugin.version>3.2.1</maven-source-plugin.version><maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version><maven-war-plugin.version>3.3.2</maven-war-plugin.version><micrometer.version>1.9.3</micrometer.version><mockito.version>4.5.1</mockito.version><mongodb.version>4.6.1</mongodb.version><mssql-jdbc.version>10.2.1.jre8</mssql-jdbc.version><mysql.version>8.0.30</mysql.version><nekohtml.version>1.9.22</nekohtml.version><neo4j-java-driver.version>4.4.9</neo4j-java-driver.version><netty.version>4.1.79.Final</netty.version><okhttp.version>4.9.3</okhttp.version><oracle-database.version>21.5.0.0</oracle-database.version><pooled-jms.version>1.2.4</pooled-jms.version><postgresql.version>42.3.6</postgresql.version><prometheus-client.version>0.15.0</prometheus-client.version><quartz.version>2.3.2</quartz.version><querydsl.version>5.0.0</querydsl.version><r2dbc-bom.version>Borca-SR1</r2dbc-bom.version><rabbit-amqp-client.version>5.14.2</rabbit-amqp-client.version><rabbit-stream-client.version>0.5.0</rabbit-stream-client.version><reactive-streams.version>1.0.4</reactive-streams.version><reactor-bom.version>2020.0.22</reactor-bom.version><rest-assured.version>4.5.1</rest-assured.version><rsocket.version>1.1.2</rsocket.version><rxjava.version>1.3.8</rxjava.version><rxjava-adapter.version>1.2.1</rxjava-adapter.version><rxjava2.version>2.2.21</rxjava2.version><saaj-impl.version>1.5.3</saaj-impl.version><selenium.version>4.1.4</selenium.version><selenium-htmlunit.version>3.61.0</selenium-htmlunit.version><sendgrid.version>4.9.3</sendgrid.version><servlet-api.version>4.0.1</servlet-api.version><slf4j.version>1.7.36</slf4j.version><snakeyaml.version>1.30</snakeyaml.version><solr.version>8.11.2</solr.version><spring-amqp.version>2.4.6</spring-amqp.version><spring-batch.version>4.3.6</spring-batch.version><spring-data-bom.version>2021.2.2</spring-data-bom.version><spring-framework.version>5.3.22</spring-framework.version><spring-graphql.version>1.0.1</spring-graphql.version><spring-hateoas.version>1.5.1</spring-hateoas.version><spring-integration.version>5.5.14</spring-integration.version><spring-kafka.version>2.8.8</spring-kafka.version><spring-ldap.version>2.4.1</spring-ldap.version><spring-restdocs.version>2.0.6.RELEASE</spring-restdocs.version><spring-retry.version>1.3.3</spring-retry.version><spring-security.version>5.7.3</spring-security.version><spring-session-bom.version>2021.2.0</spring-session-bom.version><spring-ws.version>3.1.3</spring-ws.version><sqlite-jdbc.version>3.36.0.3</sqlite-jdbc.version><sun-mail.version>1.6.7</sun-mail.version><thymeleaf.version>3.0.15.RELEASE</thymeleaf.version><thymeleaf-extras-data-attribute.version>2.0.1</thymeleaf-extras-data-attribute.version><thymeleaf-extras-java8time.version>3.0.4.RELEASE</thymeleaf-extras-java8time.version><thymeleaf-extras-springsecurity.version>3.0.4.RELEASE</thymeleaf-extras-springsecurity.version><thymeleaf-layout-dialect.version>3.0.0</thymeleaf-layout-dialect.version><tomcat.version>9.0.65</tomcat.version><unboundid-ldapsdk.version>6.0.5</unboundid-ldapsdk.version><undertow.version>2.2.19.Final</undertow.version><versions-maven-plugin.version>2.10.0</versions-maven-plugin.version><webjars-locator-core.version>0.50</webjars-locator-core.version><wsdl4j.version>1.6.3</wsdl4j.version><xml-maven-plugin.version>1.0.2</xml-maven-plugin.version><xmlunit2.version>2.9.0</xmlunit2.version></properties>
这便是SpringBoot不需要书写版本的原因!
配置依赖
<resource><directory>${basedir}/src/main/resources</directory><filtering>true</filtering><includes><include>**/application*.yml</include><include>**/application*.yaml</include><include>**/application*.properties</include></includes></resource><resource><directory>${basedir}/src/main/resources</directory><excludes><exclude>**/application*.yml</exclude><exclude>**/application*.yaml</exclude><exclude>**/application*.properties</exclude></excludes></resource>
1.2.2、启动器
springBoot的启动器:spring Boot的启动场景。
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency>
比如:spring-boot-starter-web,它会自动导入web项目所需要的所有依赖。
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
spring boot会将所有的功能场景,都编程一个个的启动器,如果我们要使用什么功能,就只需要找到对应的启动器就行了。
spring官方文档:
https://docs.spring.io
1.2.3、主程序
@SpringBootApplication
public class BlogFztApplication {public static void main(String[] args) {SpringApplication.run(BlogFztApplication.class, args);}}
@SpringBootApplication:标注这个类是一个Springboot启动类,启动类下的所有资源被导入
点进去,就能看到核心注解:
注解:
@SpringBootConfiguration//springboot的配置@Configuration//spring配置类@Component//说明这也是一个spring的组件
@EnableAutoConfiguration//自动配置
//点进去@AutoConfigurationPackage//自动配置包@Import(AutoConfigurationPackages.Registrar.class)//自动配置‘包注册’@Import(AutoConfigurationImportSelector.class)//自动配置导入选择
//获取所有配置
List<String> configurations = getCandidateConfigurations(annotationMetadata,attributes);
核心方法:
获取候选的配置
protected List<String> getCandidateConfigurations(AnnotationMetadata metadata, AnnotationAttributes attributes) {List<String> configurations = new ArrayList<>(SpringFactoriesLoader.loadFactoryNames(getSpringFactoriesLoaderFactoryClass(), getBeanClassLoader()));ImportCandidates.load(AutoConfiguration.class, getBeanClassLoader()).forEach(configurations::add);Assert.notEmpty(configurations,//断言非空,如果配置文件不为空,则去找spring.factories文件"No auto configuration classes found in META-INF/spring.factories nor in META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports. If you "+ "are using a custom packaging, make sure that file is correct.");return configurations;}
protected Class<?> getSpringFactoriesLoaderFactoryClass() {return EnableAutoConfiguration.class;}
META-INF/spring.factories:org.springframework.boot.autoconfigure
# Initializers
org.springframework.context.ApplicationContextInitializer=\
org.springframework.boot.autoconfigure.SharedMetadataReaderFactoryContextInitializer,\
org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener# Application Listeners
org.springframework.context.ApplicationListener=\
org.springframework.boot.autoconfigure.BackgroundPreinitializer# Environment Post Processors
org.springframework.boot.env.EnvironmentPostProcessor=\
org.springframework.boot.autoconfigure.integration.IntegrationPropertiesEnvironmentPostProcessor# Auto Configuration Import Listeners
org.springframework.boot.autoconfigure.AutoConfigurationImportListener=\
org.springframework.boot.autoconfigure.condition.ConditionEvaluationReportAutoConfigurationImportListener# Auto Configuration Import Filters
org.springframework.boot.autoconfigure.AutoConfigurationImportFilter=\
org.springframework.boot.autoconfigure.condition.OnBeanCondition,\
org.springframework.boot.autoconfigure.condition.OnClassCondition,\
org.springframework.boot.autoconfigure.condition.OnWebApplicationCondition# Failure analyzers
org.springframework.boot.diagnostics.FailureAnalyzer=\
org.springframework.boot.autoconfigure.data.redis.RedisUrlSyntaxFailureAnalyzer,\
org.springframework.boot.autoconfigure.diagnostics.analyzer.NoSuchBeanDefinitionFailureAnalyzer,\
org.springframework.boot.autoconfigure.flyway.FlywayMigrationScriptMissingFailureAnalyzer,\
org.springframework.boot.autoconfigure.jdbc.DataSourceBeanCreationFailureAnalyzer,\
org.springframework.boot.autoconfigure.jdbc.HikariDriverConfigurationFailureAnalyzer,\
org.springframework.boot.autoconfigure.jooq.NoDslContextBeanFailureAnalyzer,\
org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryBeanCreationFailureAnalyzer,\
org.springframework.boot.autoconfigure.r2dbc.MissingR2dbcPoolDependencyFailureAnalyzer,\
org.springframework.boot.autoconfigure.r2dbc.MultipleConnectionPoolConfigurationsFailureAnalzyer,\
org.springframework.boot.autoconfigure.r2dbc.NoConnectionFactoryBeanFailureAnalyzer,\
org.springframework.boot.autoconfigure.session.NonUniqueSessionRepositoryFailureAnalyzer# Template availability providers
org.springframework.boot.autoconfigure.template.TemplateAvailabilityProvider=\
org.springframework.boot.autoconfigure.freemarker.FreeMarkerTemplateAvailabilityProvider,\
org.springframework.boot.autoconfigure.mustache.MustacheTemplateAvailabilityProvider,\
org.springframework.boot.autoconfigure.groovy.template.GroovyTemplateAvailabilityProvider,\
org.springframework.boot.autoconfigure.thymeleaf.ThymeleafTemplateAvailabilityProvider,\
org.springframework.boot.autoconfigure.web.servlet.JspTemplateAvailabilityProvider# DataSource initializer detectors
org.springframework.boot.sql.init.dependency.DatabaseInitializerDetector=\
org.springframework.boot.autoconfigure.flyway.FlywayMigrationInitializerDatabaseInitializerDetector# Depends on database initialization detectors
org.springframework.boot.sql.init.dependency.DependsOnDatabaseInitializationDetector=\
org.springframework.boot.autoconfigure.batch.JobRepositoryDependsOnDatabaseInitializationDetector,\
org.springframework.boot.autoconfigure.quartz.SchedulerDependsOnDatabaseInitializationDetector,\
org.springframework.boot.autoconfigure.session.JdbcIndexedSessionRepositoryDependsOnDatabaseInitializationDetector
Properties properties = PropertiesLoaderUtils.loadProperties(resource);
相关文章:
SpringBoot使用手册
SpringBoot使用手册 1、自动装配 1.1、创建spring Boot项目 在之前的文章中已经专门写过,这里不做赘述。 1.2、pom.xml 1.2.1、版本管理 在学习完maven项目后,我们学习框架时首先阅读的就是pom.xml文件,这里是管理自己该项目中所用到的…...

HTML CSS 基础复习笔记 - 列表使用
用于自己复习 自定义列表 示例代码 <!DOCTYPE html> <html> <head><title>Definition List Example</title> </head> <body><h1>古诗</h1><dl><dt>静夜思</dt><dd>床前明月光,疑…...

017-GeoGebra基础篇-微积分函数求解圆弧面积问题
基础篇慢慢的走进尾声,今天给大家带来一个小项目,是关于高中数学微积分部分的展示,这个项目主要包含了函数的介绍、函数与图形绘制的区别、区域函数图像的绘制、积分函数的应用、动态文本的调用、嵌套滑动条的应用等等,以及其他常…...

Element中的选择器组件Select (一级选择组件el-select)
简述:在 Element UI 中,ElSelect(或简称为 Select)是一个非常常用的选择器组件,它提供了丰富的功能来帮助用户从一组预定义的选项中选择一个或多个值。这里来简单记录一下 一. 组件和属性配置 <el-selectv-model&q…...

数值分析笔记(五)线性方程组解法
三角分解法 A的杜利特分解公式如下: u 1 j a 1 j ( j 1 , 2 , ⋯ , n ) , l i 1 a i 1 / u 11 ( i 2 , 3 , ⋯ , n ) , u k j a k j − ∑ m 1 k − 1 l b m u m j ⇒ a k j ( j k , k 1 , ⋯ , n ) , l i k ( a i k − ∑ m 1 k − 1 l i n u m k ) /…...

IDEA中Maven的配置
目录 1. 安装maven 2. 配置环境变量 3. IDEA中配置Maven 4. 配置仓库目录 1. 安装maven 官网下载地址:Maven – Download Apache Maven 下载后,将zip压缩包解压到某个目录即可。 2. 配置环境变量 变量名称随意,通常为M2_HOMEÿ…...

成人高考本科何时报名-深职训学校帮您规划学习之路
你有想过继续深造自己的学历吗?也许你已经工作多年,但总觉得学历是一块心病,想要通过成人高考本科来提升自己。不用着急,今天我们来聊一聊成人高考本科的报名时间,以及深职训学校如何帮助你顺利完成报名。 深圳成人高…...
C++ STL 协程(Coroutines)
一:什么是协程(Coroutines): 协程是轻量级线程,可以暂停和恢复执行,协程拥有自己的暂停点状态,协程暂停时,将当前状态保存起来,在恢复执行时会恢复之前保存的状态。 二:例子: #include <coroutine> #include <iostream>void doTheWork() {std::cout <…...

虚拟机下基于海思移植QT(一)——虚拟机下安装QT
0.参考资料 1.海思Hi3516DV300 移植Qt 运行并在HDMI显示器上显示 2.搭建海思3559A-Qt4.8.7Openssl开发环境 1.报错解决 通过下面命令查询 strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_通过命令行没有解决: sudo apt install libc6-dev libc6参考解决…...

计算机网络部分知识点整理
停止等待协议的窗口尺寸为 1。 √以太网标准是IEEE802.3TCP/IP四层,OSI模型有7层,地址解析协议 ARP 在 OSI 参考七层协议属于数据链路层,在TCP/IP 协议属于网络层,ARP作用:将 IP 地址映射到第二层地址,交换…...

【Qt】Qt概述
目录 一. 什么是Qt 二. Qt的优势 三. Qt的应用场景 四. Qt行业发展方向 一. 什么是Qt Qt是一个跨平台的C图形用户界面应用程序框架,为应用程序开发者提供了建立艺术级图形界面所需的所有功能。 Qt是完全面向对象的,很容易扩展,同时Qt为开发…...

读书笔记-《魔鬼经济学》
这是一本非常有意思的经济学启蒙书,作者探讨了许多问题,并通过数据找到答案。 我们先来看看作者眼中的“魔鬼经济学”是什么,再选一个贴近我们生活的例子进行阐述。 01 魔鬼经济学 中心思想:假如道德代表人类对世界运转方式的期…...
2024.7.7总结
今天是惊心动魄的一天,记录一下吧! 昨天晚上害怕早上闹铃响了听不到,担心有意外出现,错过回家的车票,于是便在晚上设置了3个闹铃,6:50,7:00,7:05然后也关了静音。没想到,早上按照正…...

uniapp做小程序内打开地图展示位置信息
使用场景:项目中需要通过位置信息打开地图查看当前位置信息在地图那个位置,每个酒店有自己的经纬度和详细地址,点击地图按钮打开内置地图如图 方法如下: <view class"dttu" click"openMap(info.locationY,info.…...

leetcode 283.移动零
leetcode 283.移动零 自己刷题并且进行记录一下 题解 c class Solution { public:void moveZeroes(vector<int>& nums) {int count 0;for (int i 0; i < nums.size(); i) {if(nums[i] ! 0) {nums[count] nums[i];if (count !i) {nums[i] 0;}count;}}} };...

Unity | Shader基础知识(第十七集:学习Stencil并做出透视效果)
目录 一、前言 二、了解unity预制的材质 三、什么是Stencil 四、UGUI如何使用Stencil(无代码) 1.Canvas中Image使用Stencil制作透视效果 2.学习Stencil 3.分析透视效果的需求 五、模型如何使用Stencil 1.shader准备 2.渲染顺序 3.Stencil代码语…...

【3D->2D转换(1)】LSS(提升,投放,捕捉)
Lift, Splat, Shoot 这是一个端到端架构,直接从任意数量的摄像头数据提取给定图像场景的鸟瞰图表示。将每个图像分别“提升(lift)”到每个摄像头的视锥(frustum),然后将所有视锥“投放(splat&a…...
MyBatis 框架核心及面试知识要点
1、什么是 MyBatis? MyBatis 是一款优秀的支持自定义 SQL 查询、存储过程和高级映射的持久层框架,消除了 几乎所有的 JDBC 代码和参数的手动设置以及结果集的检索 。 MyBatis 可以使用 XML,或注解进 行配置和映射,MyBatis 通过将参数映射到配置的 SOL,形…...

《linux系统内核设计与实现》-实现最简单的字符设备驱动
开发linux内核驱动需要以下4个步骤: 1 编写hello驱动代码 驱动代码如下 helloDev.c,这是一个最小、最简单的驱动,去掉了其他的不相干代码,尽量让大家能了解驱动本身。 #include <linux/module.h> #include <linux/mod…...

【MotionCap】pycharm 远程在wsl2 ubuntu20.04中root的miniconda3环境
pycharm wsl2 链接到pycharmsbin 都能看到内容,/root 下内容赋予了zhangbin 所有,pycharm还是看不到/root 下内容。sudo 安装了miniconda3 引发了这些问题 由于是在 root 用户安装的miniconda3 所以安装路径在/root/miniconda3 里 这导致了环境也是root用户的,会触发告警 WA…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...

短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...