探索Spring、Spring Boot和Spring Cloud的奇妙关系(二)
本系列文章简介:
在当今快节奏、高竞争的软件开发世界中,构建可靠、高效的应用程序是至关重要的。而Spring框架一直以来都是业界领先的Java开发框架之一,帮助开发者简化了复杂的任务,并提供了丰富的功能和强大的支持。
然而,随着云计算和微服务架构的兴起,开发者需要更加灵活且可扩展的解决方案来构建分布式系统。这时,Spring Boot和Spring Cloud应运而生,为开发者提供了更加便捷和高效的微服务开发和管理工具。
Spring Boot是基于Spring框架的快速应用程序开发框架,旨在简化Spring应用的初始配置和部署过程。它通过自动配置和约定大于配置的方式,使得开发者能够快速搭建一个可运行的Spring应用程序,并集成了大量常用的第三方库和组件,减少了开发的时间和复杂度。
而Spring Cloud则是构建在Spring Boot之上的开发工具集合,旨在帮助开发者构建分布式系统和微服务架构。它提供了一系列功能强大的工具和组件,例如服务注册与发现、负载均衡、断路器模式等,使得开发者可以轻松实现各种分布式系统的需求。
Spring、Spring Boot和Spring Cloud三者之间的关系可以用一个逐层增强的模型来理解。Spring提供了一个强大的基础框架,用于构建应用程序。Spring Boot在Spring基础上添加了更多的自动配置和便捷功能,简化了应用程序的开发和部署。而Spring Cloud进一步在Spring Boot的基础上提供了一系列的分布式系统工具和组件,使得开发者可以轻松构建和管理分布式系统和微服务架构。
通过使用Spring、Spring Boot和Spring Cloud,开发者可以享受到一系列强大的功能和便捷的开发工具,极大地提高了开发效率并降低了系统复杂性。无论是构建单体应用程序还是分布式系统,这三者的奇妙关系都为开发者提供了一个全面而综合的解决方案。本系列文章将深入探索这三者之间的关系,帮助大家更好地理解和应用它们。
欢迎大家订阅《Java技术栈高级攻略》专栏,一起学习,一起涨分!
目录
一、前言
二、Spring、Spring Boot和Spring Cloud的关系
2.1 Spring Boot和Spring的关系
2.2 Spring Cloud和Spring Boot的关系
2.3 Spring Cloud和Spring的关系
三、如何使用Spring、Spring Boot和Spring Cloud
3.1 使用Spring构建Java应用程序
3.2 使用Spring Boot构建独立的、自包含的应用程序
3.3 使用Spring Cloud构建分布式系统和微服务架构
四、案例分析:实例演示如何使用Spring、Spring Boot和Spring Cloud
4.1 案例一:使用Spring构建一个简单的Web应用程序
4.2 案例二:使用Spring Boot构建一个RESTful API服务
4.3 案例三:使用Spring Cloud构建一个微服务架构
五、结语
一、前言
Spring、Spring Boot和Spring Cloud三者之间存在着紧密的关系。Spring是一个强大的基础框架,提供了丰富的功能和扩展点;Spring Boot是在Spring基础上构建的,简化了Spring应用的开发和部署;Spring Cloud是在Spring Boot基础上构建的,提供了分布式系统开发所需的工具和组件。通过使用这三个框架,开发者可以更加高效地构建出优秀的Java应用,并实现分布式系统的架构。在接下来的文章中,我们将会深入探索这三位宝藏的奇妙关系,带你进入Java世界的无限可能。
本文将跟随《探索Spring、Spring Boot和Spring Cloud的奇妙关系(一)》的进度,继续介绍三者的关系。希望通过本系列文章的学习,您将能够更好地理解三者的内部工作原理,掌握三者的使用技巧,以及通过合理的设计完成最佳实践,充分发挥优化三者的潜力,为系统的高效运行提供有力保障。
二、Spring、Spring Boot和Spring Cloud的关系
2.1 Spring Boot和Spring的关系
Spring Boot是一个用来简化Spring应用程序的开发的框架,它基于Spring框架。Spring框架是一个开源的Java应用程序框架,它提供了一种轻量级的解决方案来创建和管理企业级Java应用程序。Spring Boot在Spring框架的基础上,封装了很多常见的配置和功能,让开发者可以更快速、更便捷地构建Spring应用程序。它提供了自动配置功能,可以根据项目的依赖和配置文件进行自动配置,无需手动进行繁琐的配置。同时,Spring Boot也提供了一些额外的功能,例如内嵌的服务器和运行时监控等。总的来说,Spring Boot是Spring框架的扩展和增强,使得开发者可以更高效地开发Spring应用程序。
2.2 Spring Cloud和Spring Boot的关系
Spring Cloud和Spring Boot是两个独立的项目,它们之间有密切的关系。
Spring Boot是一个用于快速构建独立的、基于Spring的应用程序的框架。它简化了Spring框架的配置和部署,并提供了许多开箱即用的功能,如自动配置、嵌入式服务器等。Spring Boot的目标是使开发人员能够更轻松地构建Spring应用程序,而无需为配置和繁琐的依赖项管理而烦恼。
Spring Cloud是一个用于构建分布式系统的框架。它提供了一系列的工具和组件,帮助开发人员快速构建和部署云原生应用程序。Spring Cloud通过提供服务发现、负载均衡、配置管理、断路器等功能,简化了构建分布式系统的复杂性。Spring Cloud可以与Spring Boot一起使用,借助Spring Boot的快速开发特性,更快地构建和部署分布式系统。
因此,可以说Spring Cloud是建立在Spring Boot之上的一个框架,它利用了Spring Boot的快速开发特性,提供了更多用于构建分布式系统的功能和工具。在实际项目中,通常会同时使用Spring Cloud和Spring Boot来开发和部署分布式系统。
2.3 Spring Cloud和Spring的关系
Spring Cloud是基于Spring框架的一套分布式系统开发工具集,它提供了一些开箱即用的分布式系统功能,比如服务注册与发现、配置管理、负载均衡、断路器、网关等。Spring Cloud通过集成和扩展Spring框架的功能,进一步简化了分布式系统的开发。
Spring框架是一个用于构建企业级应用的开源框架,提供了一套全面的Java开发工具和库。它可以帮助开发人员快速构建高效、可扩展、可维护的应用程序。Spring框架主要包括核心容器、数据访问/集成、Web开发、AOP和测试等模块,通过这些模块提供的功能,开发人员可以更加方便地开发各种类型的应用。
Spring Cloud是基于Spring框架构建的,它与Spring框架紧密结合,通过集成Spring框架的各种功能模块,提供了一套完整的分布式系统开发工具集。同时,Spring Cloud也提供了一些独立于Spring框架的功能,比如服务注册与发现、配置管理等。通过Spring Cloud,开发人员可以更加便捷地构建分布式系统,并提供一些常见的分布式系统功能。
因此,可以说Spring Cloud是Spring框架在分布式系统开发领域的扩展和增强。它通过集成和扩展Spring框架的功能,提供了一套更加完善的分布式系统开发工具集。同时,Spring Cloud也是Spring框架的一部分,使用Spring Cloud的开发人员仍然可以享受到Spring框架的诸多好处。
三、如何使用Spring、Spring Boot和Spring Cloud
3.1 使用Spring构建Java应用程序
要使用Spring构建Java应用程序,您可以遵循以下步骤:
-
引入Spring依赖:在您的项目中添加Spring框架的依赖项。您可以使用构建工具(如Maven或Gradle)来自动管理这些依赖。您需要至少包含Spring核心库的依赖项。
-
创建Spring配置文件:创建一个XML文件,用于配置Spring容器和相关的Bean。在配置文件中,您可以定义Bean的名称、类别和依赖关系。
-
编写业务逻辑:在Java类中编写您的业务逻辑代码。这些类将成为Spring容器中的Bean。
-
注解配置(可选):使用Spring的注解来简化配置。您可以使用注解来指示Spring自动装配Bean,并定义依赖关系。
-
创建Spring应用程序上下文:在您的应用程序中创建一个Spring应用程序上下文。这将加载并管理您的Bean。
-
访问Bean:通过应用程序上下文从Spring容器中获取Bean,并在您的应用程序中使用它们。
-
运行应用程序:运行您的Java应用程序并测试Spring配置是否正确。
这是一个基本的Spring应用程序创建过程的概述。您可以根据您的需要进一步学习和使用Spring的其他特性,如AOP、事务管理、数据访问等。Spring框架提供了广泛的功能和灵活性,可帮助您构建可扩展和易于维护的Java应用程序。
3.2 使用Spring Boot构建独立的、自包含的应用程序
使用Spring Boot构建独立的、自包含的应用程序非常简单。
下面是一些步骤:
1. 首先,确保你已经安装了Java和Maven。
2. 创建一个新的Maven项目,并在pom.xml中添加以下依赖项:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
这个依赖项将为你的应用程序提供基本的Web功能。
3. 创建一个Spring Boot应用程序类。这是一个带有@SpringBootApplication
注解的类。这个注解整合了@Configuration
、@EnableAutoConfiguration
和@ComponentScan
,使应用程序变为一个Spring Boot应用程序。
@SpringBootApplication
public class MyApp {public static void main(String[] args) {SpringApplication.run(MyApp.class, args);}
}
4. 创建Controller类来处理HTTP请求和响应。
@RestController
public class MyController {@RequestMapping("/")public String home() {return "Hello, World!";}
}
5. 运行应用程序。你可以使用Maven命令mvn spring-boot:run
或者直接运行MyApp
类的main
方法。你的应用程序将在默认端口(8080)上运行。
6.打开浏览器,访问http://localhost:8080
,你将看到输出Hello, World!
。
通过遵循以上步骤,你可以使用Spring Boot构建独立的、自包含的应用程序。Spring Boot将为你处理许多常见的配置和依赖项,让你专注于编写业务逻辑。
3.3 使用Spring Cloud构建分布式系统和微服务架构
Spring Cloud是一个开源的、轻量级的分布式系统开发工具,它基于Spring框架,并提供了一系列的组件和工具,帮助开发者构建分布式系统和微服务架构。
使用Spring Cloud可以实现以下功能和特性:
-
服务注册与发现:Spring Cloud提供了服务发现组件,例如Eureka和Consul,可以帮助开发者将服务注册到注册中心,并通过服务名进行服务发现。
-
负载均衡:Spring Cloud集成了Ribbon负载均衡组件,可以在多个服务实例之间实现负载均衡,提高系统的稳定性和性能。
-
断路器:Spring Cloud通过集成Hystrix组件,提供了断路器模式的支持,可以实现服务的容错和降级处理。
-
分布式配置:Spring Cloud提供了分布式配置组件,例如Config Server和Config Client,可以将配置信息集中管理,并动态刷新配置。
-
服务网关:Spring Cloud集成了Zuul组件,可以实现统一的API网关,对外提供服务路由、鉴权和监控等功能。
-
分布式跟踪:Spring Cloud提供了Sleuth组件,可以实现分布式系统的请求链路跟踪和监控。
-
消息总线:Spring Cloud集成了消息总线组件,例如Spring Cloud Bus和Kafka,可以实现服务之间的消息传递和事件驱动。
通过使用Spring Cloud,开发者可以方便地构建分布式系统和微服务架构,提高系统的可扩展性、可靠性和灵活性。同时,Spring Cloud还提供了丰富的文档和示例,帮助开发者快速上手和解决常见问题。
四、案例分析:实例演示如何使用Spring、Spring Boot和Spring Cloud
4.1 案例一:使用Spring构建一个简单的Web应用程序
下面是一个使用Spring构建简单Web应用程序的示例代码:
- 创建一个Maven项目,添加以下依赖:
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
</dependencies>
2. 创建一个Controller类,处理HTTP请求并返回响应:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloWorldController {@GetMapping("/hello")public String helloWorld() {return "Hello, World!";}
}
3. 创建一个Spring Boot应用程序的入口类:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}
4. 运行应用程序,访问http://localhost:8080/hello
即可看到"Hello, World!"的响应。
这是一个简单的使用Spring构建Web应用程序的示例,你可以根据自己的需求进行扩展和修改。
4.2 案例二:使用Spring Boot构建一个RESTful API服务
下面是一个简单的使用Spring Boot构建RESTful API服务的示例:
首先,需要在你的Java开发环境中安装Spring Boot。可以在Spring官网(https://spring.io/projects/spring-boot)上找到相关的安装教程。
接下来,创建一个Java类作为你的主应用程序类。这个类需要使用@SpringBootApplication
注解来标记,表示它是一个Spring Boot应用程序。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class MyApp {public static void main(String[] args) {SpringApplication.run(MyApp.class, args);}
}
然后,创建一个控制器类来处理RESTful API的请求和响应。这个类需要使用@RestController
注解来标记,表示它是一个处理REST请求的控制器。
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/api")
public class ApiController {@GetMapping("/hello")public String hello() {return "Hello, World!";}
}
在上面的示例中,我们使用@RequestMapping
注解定义了控制器的根路径为"/api",然后使用@GetMapping
注解定义了一个处理GET请求的方法,路径为"/hello"。这个方法会返回一个字符串"Hello, World!"作为响应。
最后,运行MyApp
类的main
方法启动应用程序。然后,你就可以使用任何HTTP客户端(例如浏览器或curl命令)发送GET请求到"http://localhost:8080/api/hello"路径,你将会收到"Hello, World!"作为响应。
这只是一个简单的示例,你可以根据你的需求来自定义更多的RESTful API,例如处理POST、PUT、DELETE等请求,以及使用数据库或其他外部服务进行数据交互等。
4.3 案例三:使用Spring Cloud构建一个微服务架构
首先,我们需要创建一个Spring Boot项目作为微服务架构的主入口。
- 创建一个新的Spring Boot项目,打开IDE(如IntelliJ IDEA),选择File -> New -> Project。
- 在新建项目的窗口中,选择"Spring Initializr",然后点击“Next”。
- 在下一个页面中,填写以下内容:
- 选择Java版本(如Java 8)
- 输入项目的Group和Artifact名称(如com.example)
- 选择项目的依赖(至少选择Spring Web和Spring Cloud Nacos Discovery)
- 点击“Next”
- 在下一个页面中,选择项目的名称和保存路径,然后点击“Finish”。
- 项目创建完成后,打开pom.xml文件,添加以下依赖:
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
6. 创建一个Spring Boot Application类,作为项目的主入口。
@SpringBootApplication
@EnableDiscoveryClient
public class MicroserviceApplication {public static void main(String[] args) {SpringApplication.run(MicroserviceApplication.class, args);}
}
7. 创建一个Controller类,用于处理HTTP请求。
@RestController
public class HelloController {@Value("${spring.application.name}")private String serviceName;@RequestMapping("/")public String hello() {return "Hello from " + serviceName;}
}
8. 在application.properties或application.yml文件中,配置应用的名称和Nacos的地址。
spring.application.name=microservice
spring.cloud.nacos.discovery.server-addr=localhost:8848
9. 启动应用,访问http://localhost:8080/,可以看到返回的信息为"Hello from microservice"。
以上就是一个简单的使用Spring Cloud和Nacos构建的微服务架构示例。你可以根据自己的需求,扩展和修改这个示例。
五、结语
文章至此,已接近尾声!希望此文能够对大家有所启发和帮助。同时,感谢大家的耐心阅读和对本文档的信任。在未来的技术学习和工作中,期待与各位大佬共同进步,共同探索新的技术前沿。最后,再次感谢各位的支持和关注。您的支持是作者创作的最大动力,如果您觉得这篇文章对您有所帮助,请分享给身边的朋友和同事!
相关文章:
探索Spring、Spring Boot和Spring Cloud的奇妙关系(二)
本系列文章简介: 在当今快节奏、高竞争的软件开发世界中,构建可靠、高效的应用程序是至关重要的。而Spring框架一直以来都是业界领先的Java开发框架之一,帮助开发者简化了复杂的任务,并提供了丰富的功能和强大的支持。 然而&#…...
Mysql的事务隔离级别以及事务的四大特性。
MySQL 的事务隔离级别是数据库管理系统中的一个重要概念,它决定了事务如何隔离和影响其他并发事务。MySQL 支持四种事务隔离级别,分别是:读未提交(READ UNCOMMITTED)、读已提交(READ COMMITTED)…...
人工智能_大模型023_AssistantsAPI_01_OpenAI助手的创建_API的调用_生命周期管理_对话服务创建---人工智能工作笔记0159
先来说一下一些问题: 尽量不要微调,很麻烦,而且效果需要自己不断的去测试. 如果文档中有图表,大量的图片去分析就不合适了. 是否用RAG搜索,这个可以这样来弄,首先去es库去搜能直接找到答案可以就不用去RAG检索了,也可以设置一个分,如果低于60分,那么就可以去进行RAG检索 微…...
锁策略总结
锁策略 悲观锁和乐观锁 乐观锁和悲观锁不是具体类型的锁而是指两种不同的对待加锁的态度,这两个锁面对锁冲突的态度是相反的。 乐观锁:认为不存在很多的并发操作,因此不需要加锁。悲观锁:认为存在很多并发操作,因此需…...
蓝桥杯备考day2
1.1 map及其函数 map 提供一对一的数据处理能力,由于这个特性,它完成有可 能在我们处理一对一数据的时候,在编程上提供快速通道。map 中的第一 个值称为关键字(key),每个关键字只能在 map 中出现一次,第二个称为该 关…...
Mac电脑安装蚁剑
1: github 下载源码和加载器:https://github.com/AntSwordProjectAntSwordProject GitHubAntSwordProject has 12 repositories available. Follow their code on GitHub.https://github.com/AntSwordProject 以该图为主页面:antSword为源码…...
品牌百度百科词条创建多少钱?
百度百科作为国内最具权威和影响力的知识型平台,吸引了无数品牌和企业争相入驻。一个品牌的百度百科词条,不仅是对品牌形象的一种提升,更是增加品牌曝光度、提高品牌知名度的重要途径。品牌百度百科词条创建多少钱,这成为了许多企…...
Linux安装及管理程序
目录 一.Linux应用程序基础 1.应用程序与系统命令的关系 2.典型应用程序的目录结构 3.常见的Linux软件包封装类型 二.RPM 软件包管理工具 1.RPM 软件包管理器 Red-Hat Package Manger 2.RPM软件包 3.RPM命令 三.源代码编译安装 1. yum 软件包管理器: 配…...
Mybatis generate xml 没有被覆盖
添加插件即可 <plugin type"org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin"/>...
MercadoLibre(美客多)入仓预约系统操作流程-自动化约号(开篇)
目录 一、添加货件信息 二、输入货件信息 三、选择发货 四、填写交货日期 五、注意事项 MercadoLibre(美客多)于2021年10月18号上线了新预约入仓系统,在MercadoLibre美客多平台上,新入仓预约系统是一项非常重要的功能&#x…...
Unity TextMeshProUGUI 获取文本尺寸·大小
一般使用ContentSizeFitter组件自动变更大小 API 渲染前 Vector2 GetPreferredValues(string text)Vector2 GetPreferredValues(string text, float width, float height)Vector2 GetPreferredValues(float width, float height) 渲染后 Vector2 GetRenderedValues()Vector…...
Sonar下启动发生错误,elasticsearch启动错误
Download | SonarQube | Sonar (sonarsource.com) 1.首先我的sonar版本为 10.4.1 ,java版本为17 2.sonar启动需要数据库,我先安装了mysql, 但是目前sonar从7.9开始不支持mysql,且java版本要最少11,推荐使用java17 3.安装postsql,创建sonar数据库 4.启…...
Git常用命令以及异常信息汇总
常用命令: 查看本地分支: git branch 创建一个新仓库 git clone 仓库地址xxxxx cd 目标目录 git switch -c main touch README.md git add README.md git commit -m "add README" git push -u origin main 推送现有文件夹 cd 目标目录 git in…...
解释Python中的RESTful API设计和实现
解释Python中的RESTful API设计和实现 RESTful API,即符合REST(Representational State Transfer,表述性状态转移)架构风格的Web服务接口,已成为现代Web应用程序通信的标准。Python作为一种灵活且强大的编程语言&…...
一、Nginx部署
Nginx部署 一、Docker部署1.复制Nginx配置文件2.启动Nginx容器 一、Docker部署 1.复制Nginx配置文件 # 1.拉取镜像 docker pull nginx # 2.启动nginx容器 docker run --restartalways --namenginx -p 80:80 -d nginx # 3.宿主机创建挂载目录 mkdir /root/docker/nginx -p # 4…...
C语言基础---指针的基本语法
概述 内存地址 在计算机内存中,每个存储单元都有一个唯一的地址(内存编号)。通俗理解,内存就是房间,地址就是门牌号 指针和指针变量 指针(Pointer)是一种特殊的变量类型,它用于存储内存地址。指针的实…...
记录--病理切片图像处理
简介 数字病理切片,也称为全幻灯片成像(Whole Slide Imaging,WSI)或数字切片扫描,是将传统的玻片病理切片通过高分辨率扫描仪转换为数字图像的技术。这种技术对病理学领域具有革命性的意义,因为它允许病理…...
Android使用shape属性绘制边框内渐变色
目录 先上效果图实现方法shape属性介绍代码结果 先上效果图 这是使用AndroidStudio绘制的带有渐变色的边框背景色 实现方法 项目中由于UI设计需求,需要给按钮、控件设置带有背景色效果的。以下是UI效果图。 这里我们使用shape属性来绘制背景效果。 shape属性介…...
分类算法(数据挖掘)
目录 1. 逻辑回归(Logistic Regression) 2. 支持向量机(Support Vector Machine, SVM) 3. 决策树(Decision Tree) 4. 随机森林(Random Forest) 5. K近邻(K-Nearest …...
scaling laws for neural language models
关于scaling law 的正确认识 - 知乎最近scaling law 成了最大的热词。一般的理解就是,想干大模型,清洗干净数据,然后把数据tokens量堆上来,然后搭建一个海量H100的集群,干就完了。训练模型不需要啥技巧,模型…...
水经微图IOS版5.2.0发布
随时随地,微图一下! 水经微图(简称“微图”)IOS新版已上线。 在该版本中主要新增图层树节点排序功能、常规(矩形、圆、椭圆、扇形)绘制功能、地形夸张等主要功能。 当前版本 当前版本号为:5…...
聚观早报 | 哪吒L上市定档;iPhone 16最新高清渲染图
聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 4月10日消息 哪吒L上市定档 iPhone 16最新渲染图 华为太空表与问界M9联动 蔚来万里长城加电风景线正式贯通 Red…...
【C++】手搓 list 容器
送给大家一句话: 若结局非你所愿,就在尘埃落定前奋力一搏。—— 《夏目友人帐》 手搓 list 容器 1 前言1.1 底层结构1.2 使用场景1.3 功能简介 2 框架搭建2.1 节点类2.2 list 类2.3 迭代器类 3 功能实现3.1 begin() 与 end()3.2 插入操作3.3 删除操作3…...
LinkedList用法详解(Java)
LinkedList LinkedList 是 Java 中的一个常用类,它实现了 List 接口,采用双向链表数据结构。 1. 创建 LinkedList 对象 import java.util.LinkedList;LinkedList<String> linkedList new LinkedList<>();2. 添加元素 linkedList.add(&q…...
34. 在排序数组中查找元素的第一个和最后一个位置
Problem: 34. 在排序数组中查找元素的第一个和最后一个位置 文章目录 思路解题方法复杂度Code 思路 二分查找, 口诀:左右右,求左段区间的右端点,动r 解题方法 两次二分查找 复杂度 时间复杂度: O ( l o g n ) O(logn) O(logn) 二…...
音乐文件逆向破解
背景 网易云等在线音乐文件的加密源码都按照一定的规则加密,通过对音乐文件的源码分析转化,有望实现对加密文件的解密 实现内容 实现对加密音乐文件的解密 实现对无版权的音乐文件的转化 实现环境 010editor 010 Editor是一个专业的文本编辑器和十六…...
xhci 数据结构
xhci 数据结构 xhci 数据结构主要在手册上有详细的定义,本文根据手册进行归纳总结: 重点关注的包括: device contexttrb ringtrb device context设备上下文 设备上下文数据结构由xHC管理,用于向系统软件报告设备配置和状态信息。…...
Go——Goroutine介绍
一. 并发介绍 进程和线程 进程是程序在操作系统中一次执行过程,系统进程资源分配和调度的一个独立单位。线程是进程执行的实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。一个进程可以创建和撤销多个线程,…...
Centos7,部署etcd集群,基于二进制包,https安全通讯
由于etcd集群https通讯,所以需要自建CA数字证书,学习使用https部署etcd集群前,可以先完成一下,基于http通信的etcd集群: 关于CA原理以及工作可以阅读,以下两篇文章: CA工作原理 对称加密与非对…...
设置MariaDB,创建新库,新用户并授权其可以从任何主机登录
OS:CENTOS 7 1、从系统进入MariaDB # mysql -u root -p 这里的root是指MariaDB的管理员用户,和系统的root不搭边,只是同名而已。 2、看下有哪些库、用户 MariaDB [(none)]> show databases; MariaDB [(none)]>select user,host from mysql.us…...
购物平台网站建设流程/自动外链网址
自从上次发现了,object对象值为 null 时,if(object) false, 最近做资源兼容时,爱上这么写: _view[xxx] && (_view[xxx].visible false); 这个写法在fp11或fp9 里是没问题的,…...
域名注册平台的网站怎么做/电脑培训网上课程
一、微信小程序运行环境 微信小程序的 javascript 运行环境和浏览器不同,页面的脚本逻辑是在JsCore中运行,JsCore是一个没有窗口对象的环境,所以不能在脚本中使用window,也无法在脚本中操作组件,JsCore中也没有 Xmlht…...
微信小程序怎么做购物网站/上海做网络口碑优化的公司
Android文本输入框(EditText)输入密码时显示与隐藏代码很简单,这里就不多废话了。http://developer.android.com/reference/android/text/method/HideReturnsTransformationMethod.html* 2 http://developer.android.com/reference/android/text/method/PasswordTra…...
部队网站怎么做/互联网营销师培训大纲
概要 python简历 Python[1] (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。 Pyth…...
无锡网站建设营销型/找培训班一般在什么平台
http://tech.it168.com/a2011/1122/1277/000001277070.shtml 对于Android应用开发来说,手机铃声是一个非常重要的需求,网上查了很多例子,都有点问题,综合几个自己写了个可以设置铃声、通知声音、闹钟声音和所有声音功能的方法。 …...
网站开发自学时间/比较火的推广软件
一.漏洞概述 Weblogic管理端未授权的两个页面存在任意上传jsp文件漏洞,进而获取服务器权限 二.影响版本 10.3.6.0 12.1.3.0 12.2.1.2 12.2.1.3 三.漏洞复现 靶场搭建详细教程 1.首先搭建靶场 2.执行docker-compose logs | grep password可查看管理员密码 管理…...