做独立网站需要什么/百度账号人工客服
Amazon DocumentDB(与 MongoDB 兼容)是一种可扩展、高度持久和完全托管的数据库服务,用于操作任务关键型 MongoDB 工作负载。在 Amazon DocumentDB 上,您可以使用相同的 MongoDB 应用程序代码、驱动程序和工具来运行、管理和扩展工作负载,无需关心管理底层基础设施。
Spring Boot 提供了简单快速的方法,可基于 Spring 框架来构建生产级的应用程序。为了做到这一点,Spring Boot 预先打包自动配置模块,用于通常与 Spring Framework 一起使用的大多数库。简而言之,开源 Spring Boot 遵循有关配置的惯例,在 Spring 框架之上添加了自动配置功能。
在这篇文章中,您将探索使用 Spring Data MongoDB API,将 Spring Boot 应用程序集成到 Amazon DocumentDB 的基础知识。您还可以创建示例数据模型和存储库类用于执行数据库操作。
解决方案概览
Spring Boot 和 Amazon DocumentDB 的配置相对简单,只涉及几个配置步骤。
Spring Boot 允许应用程序使用 MongoTemplate 类和 MongoRepository 接口,与 Amazon DocumentDB 交互。 MongoTemplate 遵循 Spring 中的标准模板模式,为底层持久性引擎提供了现成的基本 API。MongoTemplate 为聚合、流式处理、更新和自定义查询等操作提供了直接可用的 API。MongoRepository 遵循以 Spring Data 为中心的方法,基于所有 Spring Data 项目中广为人知的创建、读取、更新和删除(CRUD,Create, Read, Update, and Delete)访问模式,提供了更灵活、更简单的 API 操作。
对于这两个选项,您首先要在 pom.xml 中为 Maven 项目定义依赖项。
这篇文章重点介绍如何使用 MongoRepository 与 Amazon DocumentDB 交互。
先决条件
您需要满足以下先决条件:
Amazon DocumentDB 集群 – 这篇文章首先介绍现有的 Amazon DocumentDB 集群,您要将其与 Spring Boot 应用程序集成。如果您还没有 Amazon DocumentDB 集群,请参阅 Get Started with Amazon DocumentDB(Amazon DocumentDB 入门)以创建新集群(https://docs.aws.amazon.com/documentdb/latest/developerguide/get-started-guide.html)。
集成式开发环境(IDE) – 例如,Eclipse 或 Amazon Cloud9。本文在演示中使用了 Amazon Cloud9,这是一款基于云的 IDE,让您只需使用浏览器即可编写、运行和调试代码。其包括代码编辑器、调试程序和终端。启用增强了对 Java 开发的支持(https://docs.aws.amazon.com/cloud9/latest/user-guide/enhanced-java.html),改善您在使用 Java 时的开发体验。
Java 17 – 有关在 Amazon Cloud9 中安装或升级 Java 的信息,请参阅 Amazon Corretto 17 Installation Instructions(Amazon Corretto 17 安装说明)(https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/amazon-linux-install.html)
Maven – 请参阅设置 Maven 以在 Amazon Cloud9 中安装 Maven(https://docs.aws.amazon.com/cloud9/latest/user-guide/sample-java.html#sample-java-sdk-maven)
Spring Initializr
您的账户中可能会产生与 Amazon DocumentDB 和 Amazon Cloud9 资源相关的费用。您可以使用亚马逊云科技定价计算器来估计此费用(https://calculator.aws/)。
使用 Spring Initializr
创建 Spring Boot 应用程序
使用以下步骤,创建一个支持 Spring Data MongoDB 的新 Spring Boot 应用程序项目。作为替代方法,您可以使用 GitHub 存储库中的 spring-boot-docdb-sample 应用程序。(https://github.com/aws-samples/amazon-documentdb-samples/tree/master/blogs/docdb-springboot)
1. 浏览到 https://start.spring.io/。
2. 指定以下选项:
选择 Maven project(Maven 项目),且 Language(语言)为 Java。
选择 Spring Boot 的版本 3.0.0。
为应用程序指定组和构件名称。
指定 Java 版本 17。
选择 ADD DEPENDENCIES(添加依赖项),然后搜索并选择 Spring Data MongoDB。您可以使用 Spring Data MongoDB 依赖项,从此应用程序与 Amazon DocumentDB 集群进行交互。
3. 选择 GENERATE(生成)以生成一个 Spring Boot 项目,其中包含引导所需的全部文件。
4. 将 ZIP 文件下载到本地计算机上的路径并解压缩文件。
如果您使用的是 Amazon Cloud9 IDE,请将 ZIP 文件上传到 Amazon Cloud9 环境并解压缩文件。
验证 Maven 依赖项
在应用程序的目录中找到 pom.xml 文件,然后验证是否已按如下方式添加 Spring Data MongoDB 依赖项:
XML
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
左滑查看更多
定义数据模型
要在 Amazon DocumentDB 数据库中存储和检索数据,我们先创建一个 POJO 模型或实体类。该实体代表 Amazon DocumentDB 中的集合,并使用注释来定义集合名称、属性、键和其他方面。
在此示例中,您创建一个产品集合和对应的模型对象,该对象将产品的详细信息存储在目录数据库中。您创建具有六个属性的产品模型: id 、 name 、 sku 、 description 、 inventory 和 category 。
Amazon DocumentDB 在集合中存储数据。默认情况下,Spring Data 将产品的类或模型映射到名为 product 的集合。如果要更改集合的名称,您可以在类上使用 Spring Data MongoDB 的 @Document 注释。在以下示例中,我们使用 @Document(collection = "products") 来将集合名称指定为 products 。
您可以使用 @Id 注释指定文档的主键 _id 。如果您未指定任何内容,Amazon DocumentDB 将在创建文档时生成 _id 字段。其他属性不添加注释。这会假设它们映射到与属性本身具有相同名称的字段。在项目的目录中,创建一个 Product.java 文件,其中具有以下内容:
Java
@Idprivate String id; /** * 设置对应于 products 集合中字段的数据成员*/private String name;private String sku;private String description;private int inventory;private String category;/*** @param id* @param name* @param sku* @param description* @param inventory* @param category*/public Product(String name, String sku, String description, int inventory, String category) {this.name = name;this.sku = sku;this.description = description;this.inventory = inventory;this.category = category;}
}
左滑查看更多
为每个属性添加 getter 和 setter 方法。您可以使用特定于 IDE 的快捷方式生成 getter 和 setter 方法。例如,右键单击代码编辑器窗格,选择 Refactoring(重构),然后选择 Generate Getter and Setter in Cloud9(在 Cloud9 中生成 Getter 和 Setter)。
此外,建议覆盖 toString 方法来输出对象,例如,右键单击代码编辑器窗格,选择 Refactoring(重构),然后选择 Generate toString() in Cloud9(在 Cloud9 中生成 toString())
在启用 TLS 的情况下进行连接
要从基于 Java 的 Spring Boot 应用程序连接到启用了 TLS 的 Amazon DocumentDB 集群,您的程序必须使用亚马逊云科技提供的证书颁发机构(CA,Certificate Authority)文件来验证连接。要使用 Amazon RDS CA 证书,请执行以下操作:
1. 在 tmp 文件夹下创建一个临时 certs 文件夹。您可以根据组织的安全策略来创建用于存储证书的文件夹。本文中,在 tmp 下创建 certs 文件夹:
Bash
mkdir /tmp/certs/
2. 运行以下命令,使用包含在文件中的 CA 证书创建信任存储。请确保更新<truststorePassword>。以下 shell 脚本示例将证书捆绑包导入 Linux 操作系统上的信任存储。有关其他选项,请参阅启用了 TLS 的情况下的连接(https://docs.aws.amazon.com/documentdb/latest/developerguide/connect_programmatically.html#connect_programmatically-tls_enabled)。
Bash
mydir=/tmp/certs
truststore=${mydir}/rds-truststore.jks
storepassword=<truststorePassword>curl -sS "https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem" > ${mydir}/rds-combined-ca-bundle.pem
awk 'split_after == 1 {n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1}{print > "rds-ca-" n ".pem"}' < ${mydir}/rds-combined-ca-bundle.pemfor CERT in rds-ca-*; doalias=$(openssl x509 -noout -text -in $CERT | perl -ne 'next unless /Subject:/; s/.*(CN=|CN = )//; print')echo "Importing $alias"keytool -import -file ${CERT} -alias "${alias}" -storepass ${storepassword} -keystore ${truststore} -nopromptrm $CERT
donerm ${mydir}/rds-combined-ca-bundle.pemecho "Trust store content is: "keytool -list -v -keystore "$truststore" -storepass ${storepassword} | grep Alias | cut -d " " -f3- | while read alias
doexpiry=`keytool -list -v -keystore "$truststore" -storepass ${storepassword} -alias "${alias}" | grep Valid | perl -ne 'if(/until: (.*?)\n/) { print "$1\n"; }'`echo " Certificate ${alias} expires in '$expiry'"
done
左滑查看更多
数据库和连接配置
设置连接详细信息和 SSL 信任存储需要两个配置文件。首先,在 application.properties 中定义您的 Amazon DocumentDB 连接参数,例如数据库、URI 或主机、端口、用户名和密码。然后在配置类中设置密钥库。
配置 Spring Boot 应用程序属性文件
要将 Spring Boot 应用程序连接到 Amazon DocumentDB,我们需要在 application.properties 文件中定义数据库配置。您需要配置数据库 URI、数据库名称或主机名、用户名、密码等属性,以及其他与连接相关的属性。要连接到 Amazon DocumentDB 集群,您需要在位于 src/main/resources 文件夹的 application.properties 文件中指定连接 URI 字符串。
要检索您的 Amazon DocumentDB 集群端点并配置 application.properties ,请完成以下步骤:
1. 在 Amazon DocumentDB 控制台的导航窗格中,选择 Clusters(集群)。
2. 找到您的集群并选择区域集群标识符。
3. 在 Connectivity & security(连接和安全性)选项卡上,复制用于通过 application.
连接到集群的命令。
4. 从复制的连接字符串中删除 &ssl_ca_certs=rds-combined-ca-bundle.pem ,因为您已经将亚马逊云科技提供的 CA 文件导入了信任存储。
5. 将连接 URI 添加到位于您的项目 src/main/resources 文件夹的 application.properties 文件中。连接 URI 的键为 spring.data.mongodb.uri 。确保复制的连接字符串格式如下:
spring.data.mongodb.uri=mongodb://<用户名>:<密码>@<集群端点>: 27017/?ssl=true&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false
左滑查看更多
或者,您可以单独提供连接详细信息,包括主机名、端口、用户名和密码以及对应的属性键,例如 spring.data.mongodb.host 或 spring.data.mongodb.port 。有关可用的 Spring Boot 参数配置选项的完整列表,请参阅 Common Application Properties(常用应用程序属性)下的 Data Properties(数据属性)(https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.data)。
6. 您也可以选择在 application.properties 文件中指定数据库名称:
spring.data.mongodb.database=catalog
创建配置类并设置密钥库
现在属性配置已经完成,您需要定义配置类来设置密钥库属性,以便建立安全连接。
要在应用程序中使用密钥库,请在配置类中设置以下系统属性:
javax.net.ssl.trustStore: <truststore>
javax.net.ssl.trustStorePassword: <truststorePassword>
左滑查看更多
请参阅以下示例配置类。使用 @Configuration 注释将该类标记为配置类。具有 @Configuration 注释的类由 Spring 容器用作 bean 定义的来源。
Java
@Beanpublic MongoClientSettings mongoClientSettings() { setSslProperties();return MongoClientSettings.builder().applyToSslSettings(builder -> builder.enabled(true)).build();}private static void setSslProperties() { System.setProperty("javax.net.ssl.trustStore", KEY_STORE_TYPE);System.setProperty("javax.net.ssl.trustStorePassword", DEFAULT_KEY_STORE_PASSWORD);}@Beanpublic MongoPropertiesClientSettingsBuilderCustomizer mongoPropertiesCustomizer(final MongoProperties properties) {return new MongoPropertiesClientSettingsBuilderCustomizer(properties);}
}
左滑查看更多
以上是 Spring Boot 中 Amazon DocumentDB 配置的全部内容现在,您可以通过扩展 MongoRepository 开始定义基于接口的存储库类。
配置存储库接口
现在,您可以使用 MongoRepository 访问数据库中的数据。 MongoRepository 提供常用功能,例如创建、读取、更新和删除(CRUD,Create, Read, Update, and Delete)操作。它充当模型与数据库之间的链接。它获取域类(Product)进行管理,并获取域类的 ID 类型作为类型参数。您可以编写几种方法,由存储库为您生成查询。
创建查询 Product 文档的存储库接口,如下所示:
Java
public interface ProductRepository extends MongoRepository<Product, String> {}
左滑查看更多
ProductRepository 扩展 MongoRepository 接口。此接口包含许多操作,包括标准的 CRUD 操作。您将在下一节中定义其他自定义操作。
定义服务类
服务类利用了 Spring Data 存储库接口。我们通过引用您在上一步中创建的存储库来定义它:
Java
@Service
public class ProductService {@Autowiredprivate ProductRepository productRepo;
}
左滑查看更多
在下一节中,您将在此类上通过添加其他方法进行构建,该节还介绍了 CRUD 示例。
使用 CrudRepository
使用扩展了 CrudRepository 的 MongoRepository 时,您的存储库可以从 CrudRepository 接口的实施类访问基本功能,包括 save 、 count 、 findAll 和 delete 方法。您的 ProductRepository 接口扩展了 MongoRepository ,并可以访问所有基本 CRUD 操作。
我们来逐个探索和测试这些操作。
保存或创建
首先,您使用 save 方法向集合中添加一些文档。 save 方法获取 Product 对象作为输入,并将产品文档保存到 Amazon DocumentDB 集合中。将以下代码片段添加到您的服务类中:
Java
public void saveProducts() {productRepo.save(new Product("RayBan Sunglass Pro", "1590234","RayBan Sunglasses for professional sports people", 100, "fashion"));productRepo.save(new Product("GUCCI Handbag", "3451290", "Fashion Hand bags for all ages", 75, "fashion"));productRepo.save(new Product("Round hat", "8976045", "", 200, "fashion"));productRepo.save(new Product("Polo shirt", "6497023", "Cool shirts for hot summer", 25, "cloth"));productRepo.save(new Product("Swim shorts", "8245352", "Designer swim shorts for athletes", 200, "cloth"));productRepo.save(new Product("Running shoes", "3243662", "Shoes for work out and trekking", 20, "footware"));System.out.println(" Save complete ");}
左滑查看更多
计数
在下一个示例中,如果存储库中没有任何方法,则调用服务类中的 count() 方法,对集合中的文档进行计数。
Java
public long getCount() {long count = productRepo.count();System.out.println(" Total number of products : "+count);return count;
}
左滑查看更多
读取
在此示例中,您执行三种不同的读取操作。您可以按名称或 SKU 提取产品,然后根据类别查找产品列表。
您在存储库( ProductRepository )中添加了三种简单方法。第一种方法 findProductByName 根据 name 属性查询集合。查询筛选条件使用注释 @Query 定义,在本例中,注释为 @Query("{name:'?0'}") 。第二种方法 findProductBySKU 根据 sku 属性查询集合,并在查询响应中仅输出 name 和 inventory 属性。第三种方法 findAll 检索特定类别的所有文档。请参阅以下代码:
Java
public interface ProductRepository extends MongoRepository<Product, String> {@Query("{name:'?0'}")Product findProductByName(String name);@Query(value="{sku:'?0'}", fields="{'name' : 1, 'inventory' : 1}")Product findProductBySKU (String sku); @Query("{category:'?0'}")List<Product> findAllByCategory(String category);}
左滑查看更多
您可以从存储库在服务类中调用这三种方法,按名称、SKU 和类别查找文档。
Java
public Product getProductByName(String name) {System.out.println(" Getting product by name : " + name);Product product = productRepo.findProductByName(name);System.out.println(product);return product;
}public Product getProductBySKU(String sku) {System.out.println(" Getting product by SKU : " + sku);Product product = productRepo.findProductBySKU(sku);System.out.println(product);return product;
}public List<Product> findAllProductsByCategory(String category) {List<Product> productList = productRepo.findAllByCategory(category);productList.forEach(product -> System.out.println(product));return productList;
}
左滑查看更多
更新
您可以通过传递更新后的实体对象,使用 save 方法来更新现有文档。在此示例中,您按 SKU 查询现有产品并将库存增加 10。将以下方法添加到您的服务中:
Java
public void updateInventory(String sku) {Product product = getProductBySKU(sku);System.out.println(" Updating Inventory for product by sku: " + sku); product.setInventory(product.getInventory()+10);Product updatedProd = productRepo.save(product);
}
左滑查看更多
删除
在本示例中,您将创建两个删除操作。首先,您按照 ID 删除一个产品;在第二种方法中,您将删除集合中的所有文档(products)。将以下方法添加到您的服务类中:
Java
public void deleteProduct(String id) {productRepo.deleteById(id);System.out.println("Product with id " + id + " deleted");
}public void deleteAll() {productRepo.deleteAll();System.out.println("All Products deleted.");
}
左滑查看更多
构建 Spring Boot 应用程序
默认的 Spring Boot 应用程序已经由 Spring Initializr 在根程序包(例如 com.example.documentdb )中创建。在 IDE 中打开默认应用程序:
Java
@SpringBootApplication
public class DocumentdbApplication {public static void main(String[] args) {SpringApplication.run(DocumentdbApplication.class, args);}
}
左滑查看更多
CommandLineRunner 接口表明,当 bean 包含在 SpringApplication 中时应该运行,以便在控制台上查看输出。实施 CommandLineRunner 接口并为 run 方法提供植入方法。我们使用 @Autowired 注释定义对您服务的引用。Spring 使用 @SpringBootApplication 注释来初始化应用程序上下文:
Java
@Overridepublic void run(String... args) throws Exception {System.out.printf("%n Insert few products : %n");prodService.saveProducts();System.out.printf("%n Count all products : %n");prodService.getCount();System.out.printf("%n Get product by name : %n");prodService.getProductByName("GUCCI Handbag");System.out.printf("%n Get product by sku : %n");prodService.getProductBySKU("8976045");System.out.printf("%n Get all products by category : %n");prodService.findAllProductsByCategory("fashion");System.out.printf("%n Update Inventory for Product by sku : %n");prodService.updateInventory("3451290");System.out.printf("%n Delete product id %n");prodService.deleteProduct("639a0046efe46b7343dd5004"); System.out.printf("%n Deleting all products/documents %n");prodService.deleteAll(); }
}
左滑查看更多
运行并测试您的应用程序
使用以下 Maven 命令运行 Spring Boot 应用程序:
Bash
mvn spring-boot:run
以下屏幕截图是 Spring Boot 应用程序的示例输出。
您做到了! 您已成功从 Spring Boot 应用程序连接到 Amazon DocumentDB。
总结
在这篇文章中,您了解了如何通过简单的应用程序将 Amazon DocumentDB 与 Spring Boot 应用程序集成,该应用程序使用 Spring Data MongoDB 将对象保存到数据库以及从数据库中提取对象,所有这些过程都无需编写具体的存储库实施,而且配置简单。
这篇文章中使用的示例在 GitHub 上作为示例项目提供(https://github.com/aws-samples/amazon-documentdb-samples/tree/master/blogs/docdb-springboot)。
Original URL:
https://aws.amazon.com/cn/blogs/database/integrate-your-spring-boot-application-with-amazon-documentdb/
本篇作者
Gururaj S Bayari
亚马逊云科技的资深 DocumentDB 专家解决方案架构师。他非常乐于帮助客户采用 Amazon 的专用数据库。他针对采用 NoSQL 和/或关系数据库的互联网规模的高性能工作负载,帮助客户进行设计、评估和优化。
听说,点完下面4个按钮
就不会碰到bug了!
相关文章:

将 Spring Boot 应用程序与 Amazon DocumentDB 集成
Amazon DocumentDB(与 MongoDB 兼容)是一种可扩展、高度持久和完全托管的数据库服务,用于操作任务关键型 MongoDB 工作负载。在 Amazon DocumentDB 上,您可以使用相同的 MongoDB 应用程序代码、驱动程序和工具来运行、管理和扩展工…...

前端小案例1:用css实现蒙层效果
前端小案例1:用css实现蒙层效果 我想要在react的函数组件中实现如下效果:首先dom结构中有一个slider组件用于展示当前的亮度条,如果在 flag为true的情况下,就给当前页面上覆盖一张透明度为0.8图片。有一个按钮会切换flag的值。 …...

RTMP流媒体服务器EasyDSS视频点播平台在不关闭防火墙的情况下平稳部署的具体步骤
EasyDSS视频直播点播平台提供了视频转码、点播、直播、推拉流、录像、回放等功能,可应用在AR、VR、无人机推流、虚拟直播、教育培训、远程会议等多样化的场景中。 通常我们在部署EasyDSS时都建议用户关闭防火墙的,但是也有无需关闭防火墙的部署办法&…...

QT中信号与槽机制的介绍,以及信号与槽连接的几种方式
信号与槽机制 信号与槽的介绍 功能:实现多个组件之间的相互通信,是QT引以为傲的核心机制信号:就是信号函数,定义在类体的signals权限下,是一个不完整的函数,只有声明没有定义;槽:就…...

学习笔记——Java入门第二季
1.1 介绍类与对象 类和对象的关系: 时间万物皆对象。对象是具体的事物,是类的具体事例 类是抽象的概念,是对象的模板。 new关键字是创建实例对象最重要的标志 Dog duoduonew Dog(); Dog luckynew Dog(); 这样就创建了两个对象并且在java内…...

计算机视觉的应用13-基于SSD模型的城市道路积水识别的应用项目
大家好,我是微学AI,今天给大家介绍一下计算机视觉的应用13-基于SSD模型的城市道路积水识别的应用项目。今年第11号台风“海葵”后部云团的影响,福州地区的降雨量突破了历史极值,多出地方存在严重的积水。城市道路积水是造成交通拥…...

【39元linux开发板-ADB远程教程】-[ADB远程终端]-幸狐Luckfox Pico-超越树莓派PICO
【教程-持续更新】 幸狐Luckfox Pico RV1103 教程合集 【39元linux开发板-ADB远程教程】-[ADB远程终端]-幸狐Luckfox Pico-超越树莓派PIC...

900ES1-0100 honeywell 可减少视觉引导应用的整体开发时间
900ES1-0100 honeywell 可减少视觉引导应用的整体开发时间 CV2视觉系统配有高柔性电缆(以太网或USB)。通过将高柔性电缆作为所有CV2视觉系统的标准配置,Epson CV2摄像机可以安装在机器人臂(移动)或固定装置(固定)上。基于向导的校准使机器人到视觉系统的校准变得轻…...

Openvslam
文章目录 Openvslam 学习报告什么是Openvslam概念特点 安装和运行OpenVSLAM克隆源代码安装依赖库测试(环境已经安装成功)运行运行失败的总结运行成功 系统设计模块和函数接口调用流程流程图参考资料 Openvslam 学习报告 什么是Openvslam 概念 OpenVSL…...

Windows通过RDP异地远程桌面Ubuntu【内网穿透】
文章目录 前言1. ubuntu安装XRDP2.局域网测试连接3.安装cpolar内网穿透4.cpolar公网地址测试访问5.固定域名公网地址 前言 XRDP是一种开源工具,它允许用户通过Windows RDP访问Linux远程桌面。 除了Windows RDP外,xrdp工具还接受来自其他RDP客户端(如Fre…...

js 基础 (ES 模块)
ES 模块语法 1、模块化的背景 JavaScript 程序本来很小——在早期,它们大多被用来执行独立的脚本任务,在你的 web 页面需要的地方提供一定交互,所以一般不需要多大的脚本。过了几年,我们现在有了运行大量 JavaScript 脚本的复杂…...

K8s 多集群实践思考和探索
作者:vivo 互联网容器团队 - Zhang Rong 本文主要讲述了一些对于K8s多集群管理的思考,包括为什么需要多集群、多集群的优势以及现有的一些基于Kubernetes衍生出的多集群管理架构实践。 一、为什么需要多集群 随着K8s和云原生技术的快速发展,…...

德国金融监管机构网站遭遇大规模DDoS攻击后“瘫痪”
德国波恩的BaFin大楼 BaFin是负责监督和监管德国金融机构和市场的金融监管机构,其职责是确保德国金融体系的稳定性、完整性和透明度。 此外,BaFin 的网站还为企业和消费者提供银行、贷款和财产融资等方面的信息。它还提供消费者帮助热线和举报人信息共…...

关于特殊时期电力行业信息中心运营思路
一、防御思路 安全运营是一系列规则、技术和应用的集合,用以保障组织核心业务平稳运行的相关活动,是通过灵活、动态的实施控制以期达到组织和业务需要的整体范围可持续性正常运行。信息中心在特殊时期扮演着关键的角色,因此需要精心设计运营…...

机器人中的数值优化(八)——拟牛顿方法(上)
本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,…...

mac安装adobe需要注意的tips(含win+mac all安装包)
M2芯片只能安装2022年以后的(包含2022年的) 1、必须操作的开启“任何来源” “任何来源“设置,这是为了系统安全性,苹果希望所有的软件都从商店或是能验证的官方下载,导致默认不允许从第三方下载应用程序。macOS sie…...

C/C++学习网址
1、http://snippets.dzone.com/tag/c/ --数以千计的有用的C语言源代码片段 2、http://www.hotscripts.com/category/c-cpp/scripts-programs/ Hotscripts --提供数以百计的C和C脚本和程序。所有程序都分为不同的类别。 3、http://www.planetsourcecode.com/vb/default.asp?lng…...

Typora导出的PDF目录标题自动加编号
Typora导出的PDF目录标题自动加编号 在Typora主题文件夹增加如下文件后,标题便自动加上了编号: https://gitcode.net/as604049322/blog_data/-/blob/master/base.user.css 例如: 但是导出的PDF中,目录却没有编号: 这…...

【React】React学习:从初级到高级(二)
React学习【二】 2 添加交互2.1 响应事件2.1.1 添加事件处理函数2.1.2 在事件处理函数中读取props2.1.3 将事件处理函数作为props传递2.1.4 命名事件处理函数prop2.1.5 事件传播2.1.6 阻止传播2.1.7 传递处理函数作为事件传播的替代方案2.1.8 阻止默认行为 2.2 State: 组件的记…...

无法将类型为“Newtonsoft.Json.Linq.JObject”的对象转换为类型“Newtonsoft.Json.Linq.JArray”解决方法
对于“Newtonsoft.Json.Linq.JObject”的对象强制类型转换为类型“Newtonsoft.Json.Linq.JArray”报错 第一的图为对象{“*************”:“********”} 第二个图片为数组[{“…”:“…”}] 在我这里进行强制转换对象转换为类型“Newtonsoft.Json.Linq.JArray”报错. 那我们…...

从零开始,无需公网IP,搭建本地电脑上的个人博客网站并发布到公网
文章目录 前言1. 安装套件软件2. 创建网页运行环境 指定网页输出的端口号3. 让WordPress在所需环境中安装并运行 生成网页4. “装修”个人网站5. 将位于本地电脑上的网页发布到公共互联网上 前言 在现代社会,网络已经成为我们生活离不开的必需品,而纷繁…...

Excel VSTO开发6 -Range对象
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 6 Range对象 Excel中最重要的一个对象是Range对象,它可以代表某一单元格、某一行、某一列、某一区域(该区域…...

LeetCode 15 三数之和
题目链接 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 题目解析 // 1. 排序双指针 // 2. 固定一个值nums[i] 然后去剩下的位置去找 两数之和符合nums[j]nums[k]是否等于-nums[i] // 3. 细节问题:由于题目中是不可以包含重复的三元组的…...

车船边缘网关是如何给车辆船只定位的?
随着智能交通系统的不断发展,车路协同成为了重要的研究方向之一。而AI边缘计算网关在这个领域中发挥着至关重要的作用。本文将重点介绍AI边缘计算网关在车路协同中的应用,并强调其中的重点词汇或短语。 首先,什么是AI边缘计算网关࿱…...

详解MAC帧、ARP、DNS、ICMP协议
局域网通信原理 比如新建了一个内网,如果一台机器A找机器B,封FRAME时(OSI的第二层用的数据格式),要封装对方的MAC,开始时A不知道B的MAC,只知道IP,它就发一个ARP包,源IP是…...

Leetcode:【169. 多数元素】
题目 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 难度:简单 题目链接:169. 多数元素 示例 1ÿ…...

好用免费的Chat GPT
MindLink麦灵 你问我答 灵感 持续更新中。。。。...

MySQL-MHA
目录 1、什么是 MHA 2、MHA 的组成 3、MHA 的特点 3.1 MHA工作原理总结如下 4、搭建 MySQL MHA 4.1 实验环境配置 MHA架构 故障模拟 4.2 安装MHA所有组件 4.3 故障模拟 4.4 总结 1、什么是 MHA MHA(MasterHigh Availability)是一套优秀的My…...

初识Node.js与内置模块
1. 初识 Node.js 1.1 回顾与思考 1. 已经掌握了哪些技术 2. 浏览器中的 JavaScript 的组成部分 3. 思考:为什么 JavaScript 可以在浏览器中被执行 4. 思考:为什么 JavaScript 可以操作 DOM 和 BOM 5. 浏览器中的 JavaScript 运行环境 6. 思考ÿ…...

NLP(1)--NLP基础与自注意力机制
目录 一、词向量 1、概述 2、向量表示 二、词向量离散表示 1、one-hot 2、Bag of words 3、TF-IDF表示 4、Bi-gram和N-gram 三、词向量分布式表示 1、Skip-Gram表示 2、CBOW表示 四、RNN 五、Seq2Seq 六、自注意力机制 1、注意力机制和自注意力机制 2、单个输出…...