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…...

[BJDCTF 2nd]简单注入
sqlsqlsqlsqlsql又来喽 过滤了单双引号,等于符号,还有select等,但是这里没有二次注入 。扫描发现hint.txt 看出题人的意思是,得到密码即可获得flag。 select * from users where username$_POST["username"] and passw…...

java项目的一些功能(完善登录功能、注册接口参数校验、完善分页查询、完善日期格式、更新文章分类和添加文章分类的分组校验、自定义校验、文件上传 )
目录 完善登录功能 注册接口参数校验 完善分页查询 完善日期格式 更新文章分类和添加文章分类的分组校验 编辑 自定义校验 文件上传 完善登录功能 对前端传过来的明文密码进行md5加密处理 password DigestUtils.md5DigestAsHex(password.getBytes()); 这样既可 注…...

Mac安装AndroidStudio连接手机 客户端测试
参考文档:https://www.cnblogs.com/andy0816/p/17097760.html 环境依赖 需要java 1.8 java安装 略 下载Android Studio 地址 下载 Android Studio 和应用工具 - Android 开发者 | Android Developers 本机对应的包进行下载 安装过程 https://www.cnblogs.c…...

Git 完整的提交规范教程
约定式提交规范 本文中的关键词 “必须(MUST)”、“禁止(MUST NOT)”、“必要(REQUIRED)”、“应当(SHALL)”、“不应当(SHALL NOT)”、“应该(S…...

【TB作品】51单片机 Proteus仿真 00001仿真实物PID电机调速系统
实验报告:Proteus 仿真 PID 电机调速系统 一、实验背景 PID(比例-积分-微分)控制器广泛应用于工业控制系统中,用于调节各种物理变量。本实验的目的是通过 Proteus 仿真软件设计并实现一个 PID 电机调速系统,以控制直…...

【LInux】从动态库的加载深入理解页表机制
💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …...

IDEA与通义灵码的智能编程之旅
1 概述 本文主要介绍在IDEA中如何安装和使用通义灵码来助力软件编程,从而提高编程效率,创造更大的个人同企业价值。 2 安装通义灵码 2.1 打开IDEA插件市场 点击IDEA的设置按钮,下拉选择Plugins,如下: 2.2 搜索通义灵码 在搜索框中输入“通义灵码”,如下: 2.3 安…...

多表查询sql
概述:项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,分为三种: 一对多多对多一对一 一、多表关系 一对多 案例:部门与…...

移动端UI风格营造舒适氛围
移动端UI风格营造舒适氛围...

摸鱼大数据——Spark SQL——DataFrame详解一
1.DataFrame基本介绍 DataFrame表示的是一个二维的表。二维表,必然存在行、列等表结构描述信息表结构描述信息(元数据Schema): StructType对象字段: StructField对象,可以描述字段名称、字段数据类型、是否可以为空行: Row对象列: Column对象ÿ…...