自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(389)
  • 收藏
  • 关注

原创 VI.Multidocument Transactions

Recipe 6-1. Working with Multidocument Transactions(多文档事务处理) 1.使用以下命令开启主从数据库并切换至20001的主数据 start mongod --bind_ip localhost --dbpath E:\study\ducument\technology\2020\mongodb\res1 --port 20001 --replSet myrs start mongod --bind_ip localhost --dbpa...

2021-04-30 17:43:08 277 1

原创 V.Replication and Sharding(创建主从数据库)

1.创建数据库将会存放的文件夹 md E:\study\ducument\technology\2020\mongodb\res1 md E:\study\ducument\technology\2020\mongodb\res2 md E:\study\ducument\technology\2020\mongodb\res32.创建对应文件夹的数据库: start mongod --bind_ip localhost --dbpath E:\study\ducument\...

2021-04-30 17:42:12 270 1

原创 IV.Indexes(索引)

Recipe 4-1. Working with Indexes(使用索引) 准备数据 db.employee.insert({empId:1,empName:"John",state:"KA",country:"India"}) db.employee.insert({empId:2,empName:"Smith",state:"CA",country:"US"}) db.employee.insert({empId:3,empName:"James...

2021-03-31 17:14:54 335

原创 III.Data Modeling and Aggregation(数据模型和整合)

Recipe 3-1. Data Model Using an Embedded Document(数据模型使用整合文档) 1.一对一的关系 比如: { _id: "James", name: "James William" } { student_id: "James", street: "123 Hill Street", ...

2021-03-31 17:13:50 197

原创 II.MongoDB CRUD Operations(CRUD操作)

Recipe 2-1. Create a Collection(创建一个容器) 1.创建容器 db.createCollection("person") 2.查看已经创建的容器 show collectionsRecipe 2-2. Create Capped Collections(创建有限制容器) 1.创建一个student容器,字节大小是1000,最大存放文档(document)是2 db.createCollection("st...

2021-01-31 21:59:10 326

原创 I.MongoDB Features and Installation(Mongodb安装和介绍)

Recipe 1-4. Create Database(创建数据库) 1.创建数据库 use mydb 2.查看数据库 dbRecipe 1-5. Drop Database(删除数据库) 1.使用一个数据库(或创建) use mydb 2.删除数据库 db.dropDatabase()Recipe 1-6. Display List of Databases(所有数据库列表显示) 1.展示所有数据库...

2021-01-31 21:56:03 104

转载 kafka的connect实现数据写入到kafka和从kafka写出

在官网第七步Step 7: 使用 Kafka Connect 来 导入/导出 数据从控制台写入和写回数据是一个方便的开始,但你可能想要从其他来源导入或导出数据到其他系统。对于大多数系统,可以使用kafka Connect,而不需要编写自定义集成代码。Kafka Connect是导入和导出数据的一个工具。它是一个可扩展的工具,运行连接器,实现与自定义的逻辑的外部系统交互。在这个快速入门里,我们将看到如何运行Kafka Connect用简单的连接器从文件导入数据到Kafka主题,再从Kafka主题导

2020-12-04 08:57:23 867

原创 7.4通过CRaSH管理Spring Boot和定义远程命令

7.4.1代码实现首先,我们需要添加CRaSH需要的依赖包: implementation 'org.jolokia:jolokia-core:+' implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'org.springframework.boot:spring-boot-starter-remoteshell' ...

2020-11-22 16:44:30 335

原创 7.3通过JVM来监控Spring Boot

开启这个章节,你需要引入相应的包:compile("org.jolokia:jolokia-core:+")7.3.1代码实现在我们添加了Jolokia JMX依赖之后,我们需要开启我们的应用,现在开启jconsloe去看一下我们的应用监控信息。之后Jolokia JMX应用添加到类路径下,Spring Boot也能够通过HTTP API使用/jilokia访问到所有注册的MBeans.找到maxThreads设置我们的Tomcat HTTP端口8080连接,我们可以使用jConsole选择.

2020-11-22 16:43:10 376

原创 7.2开放指标

在前面的节点中,我们会了如何通过Spring Boot Actuators来获取我们应用中的指标。例如:/info,/health等。然而,这些的信息不足够的。我们也想看开放的session数,当前请求的数等。这一节点我们主要学习如何通过Spring Boot来添加我们自己想要查看的指标。7.2.1预告准备 为了更好地观察到我们的指标,我们需要借助开源项目,spring-boot-admin,位于:https://github.com/codecentric/spring-boot-admin...

2020-11-22 16:42:34 224

原创 7.1.2代码说明

Spring Boot Aactuator添加了大量的重要特性,这些特性可以让我们探测运行应用的状态。这个包中包含了大量的AutoConfigurations,这里配置了大量的参数访问可以让我们探测应用的状态。下面几个是我们比较使用的。/env 提供给我们有能力去询问关于所有环境的变量,这个应用通过环境接口来获取。对于我们想要知道大量配置属性和打断点来说是非常有用的。如果我们执行http://localhost:8080/env,我们将会看到大量不同的配置情况,使用类的路径资源:[tomcat.htt

2020-11-22 16:40:50 218

原创 7.监控应用和数据可视化 7.1通用健康状态指引器

在应用时,尤其是在分布式的系统中,如果系统出了问题,我们需要及时发现并解决。所以这就需要我们时时去监控应用的健康状态。7.1.1代码实现首先,我们需要引入Spring Boot Actuator的包到build.gradle文件中,如下: implementation 'org.springframework.boot:spring-boot-starter-actuator' 这个依赖使我们有能力通过节点来操作,如/env,/info,/metrics,/health...

2020-11-22 16:40:05 260

原创 6.8使用Consul和envconsul来配置外部环境变量

因为我们不想我们的应用去知道任何关于Consul,但是不得不明确连接到Consul。我们可以应用其它的工具去创建和打开资源通过Hashicorp,称易 envconsul连接到Consul的服务,使用额外的特殊配置key/value树,并且暴露它作为环境变量去开启我们的应用。为了使用envconsul,我们需要下载包,可以从这个地方下载:https://github.com/hashicorp/envconsul/releases6.8.1如何使用如果你没有添加值给my/config/va...

2020-10-25 20:18:43 840

原创 6.7开启Consul使用

现在我们做的所有配置都是连接到我们自己的本地数据。但是在大型企业中可不是这样,他们希望配置的信息可以在几千的应用或服务器上一同改变。这样的话,我们可以使用Consul来实现配置环境变量到分布式的数据储蓄中。6.7.1如何使用先去https://consul.io/downloads.html网址上下载Consul. 安装之后,我们可以执行consul –version,可以盾如下信息(版本不同显示不同): Consul v0.5.2Consul Protocol: 2 (Under..

2020-10-25 20:17:54 730

原创 6.6使用环境变量配置外部环境

6.6.1如何使用在前面的章节中,我们添加了配置属性名为my.config.value。让我们使用./gradlew clean bootRepackage打包,并且以MY_CONFIG_VALUE=”From EVN Config” ./build/libs/bookpub-0.0.1-SNAPSHO-exe.jar –spring.profiles.active=logger启动,你将会看到如下信息: 2020-04-21--- ication$$EnhancerBySpringCGLIB.

2020-10-25 20:17:06 329

原创 6.5使用外部环境的属性文件

在这一章节中,我们将要学习如何使用外部的属性文件给我们环境的特殊配置,这个配置文件可能来自于本地系统或互联上的。例如:互联网的URL、GitHub等。6.5.1如何使用首先添加一个@Bean方法到src/main/java/org/owen/bookpub目录下的BookPubApplication类中: @Bean public CommandLineRunner configValuePrinter( @Value("${my.config...

2020-10-25 20:16:28 171

原创 6.4Spring环境配置等级和优先级

在前面的章节中,我们已经学习了如何去用不同的方式去打包我们的应用和如何部署。下一步,我们需要配置我们的应用在可控制的范围还有就是环境特殊的配置参数。这一章节,我们基于前面的章节,添加支持不同配置的文件,同时测试如何使用适当的参数作为点位符在其它适应的声明中,并且如何添加我们的PropertySource应用。6.4.1如何使用我们需要在src/main/java/org/owen/bookpub目录下的BookPubApplication.java中加入@Profile注解。 @B...

2020-10-25 20:15:23 619

原创 6.3创建自己执行的二进制文件

这个章节,我们将使用已经存在的应用。我们学习如何修改默认的启动脚本,如,JVM启动参数 -D启动系统配置,JVM内存等。 这个章节要确保我们使用的Spring Boot版本是1.3以上。如果不是的话,请在build.gradle加入以下代码。(注意,我们自己创建的db-counter-starter/build.gradle也要添加) ext {springBootVersion = '1.3.0.BUILD-SNAPSHOT'} 我们需要声明application...

2020-10-25 20:14:22 1225

原创 6.2创建Docker镜像文件

6.2创建Docker镜像文件Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。这一章节, 我们将学习如何将我们的Spring Boot应用作为Docker的镜像,并且如何部署和运行它。6.2.1如何使用第一步,你需要在Docker官网上注册你的账号。官网是:https://hub.docker.com 一旦你有了账号之

2020-10-24 17:46:57 207

原创 6.打包和部署应用 6.1创建可执行的JAR的Spring Boot

6.1创建可执行的JAR的Spring Boot Spring Boot很好的是它打成的包是一个完整的应用,该应用中包含了依赖的包、资源等,让我们有能力去执行JAR。JAR文件创建之后,我们简单地使用java -jar <name>.jar的命令不可以启动应用。 这一章节,我们将继续前面的章节,让我们学习如何去创建Spring Boot Uber JAR.6.1.1代码实现让我们在项目的根目录下执行命令:gradle clean build 之后就会创建一个包,然后执行...

2020-10-24 17:43:26 230

翻译 Redis的安装(windows)

一、安装rediswindows版本的下载在https://github.com/MicrosoftArchive/redis/tagsmsi是安装版,zip的解压就能用。建议下msi的。下载挺慢的,安装过程中遇到选框就勾选就行了。可以设置密码,默认没有密码设置密码:在安装路径上找这两个文件分别打开然后找到这里,两个都加上选中那一行 requirepass 密码CMD中进入redis安装路径输入命令redis-server.exe redis.win...

2020-10-11 17:32:26 236

转载 Redis的安装(windows)

一、安装rediswindows版本的下载在https://github.com/MicrosoftArchive/redis/tagsmsi是安装版,zip的解压就能用。建议下msi的。下载挺慢的,安装过程中遇到选框就勾选就行了。可以设置密码,默认没有密码设置密码:在安装路径上找这两个文件分别打开然后找到这里,两个都加上选中那一行 requirepass 密码CMD中进入redis安装路径输入命令redis-server.exe redis.win...

2020-10-11 17:30:27 399

原创 5.6使用Spock测试

另外一个重要的测试工具是Spock,这个是Peter Niederwieser使用Groory写的。使用Groovy基础框架,它很适合用于主要JVM基础语言测试,尤其是Java和Groovy本身。Groovy这种动态的语言很适合写出优雅的,高效的和表达性强的语言,不需要任何转变,就像Cucumber中使用一样。因为Spock的基础是JUnit,通过JUnit的@RunWith的工具整合,仅仅像Cucumber使用一样,它更容易提高我们传统的测试。在这一节中,我们需要学习如何在Spring中依赖注入和..

2020-10-11 16:12:01 761

原创 5.5使用Cucumber来测试

这一节,我们将继续前面的例子,然后不加Cucumber-JVM实现,这个将需要以java为基础的最初Ruby Cucumber框架的版本,并且创建一些测试来说明我们的应用和观点。5.5.1代码实现我们需要在build.gradle的文件中加入如下的包依赖: testCompile("info.cukes:cucumber-spring:1.2.2")testCompile("info.cukes:cucumber-java8:1.2.2")testCompile("info.cukes:c.

2020-10-11 16:10:27 938

原创 5.4使用Mockito to mock来测试

接下来,我们将会创建一个特殊的Spring Boot配置类,这里我们将会声明和替换Spring Beans为了测试目的。当我们添加测试配置和执行它的时候,我们需要使用注释去告诉Spring Boot。在配置类中,我们将会使用Mockito去创建一些mock对象,这些对象在执行的时候将会通过Spring Boot来注入。5.4.1代码实现首先,我们需要创建一个特殊的注解为了紧跟后面的测试类,目的是加载相关信息给测试。为了达到这个目的,我们需要修改BookPubApplication的类如下内容:

2020-10-11 16:09:21 428

原创 5.3使用自定议的测试数据库文件

在前面的章节中,我们学习了如何使用配置文件的去创建表和初始化数据。在测试的时候,我们首先需要保项目的环境是启动的, 这样的话,我们才可以测试我们的数据。当应用连接数据库时,确保我们要使用的数据已经初始化了。在我们测试中,需要我们去刷新或更改数据。Sping让我们有能力去完成这项工作。5.3.1代码实现首先,我们在src/test目录下创建resources的目录。 这个目录下,我们创建一个新的文件test-data.sql在resources的文件下。文件的内容如下: IN...

2020-10-11 16:08:38 266

原创 5.2自动扫描及装配数据

在前面的章节中,我们手动的添加代码在StartupRunner的方法中,为了在启动项目时可以装配我们的数据。然而,这不 一个好的方法,更好的方式是将数据准备、改变和其它的配置独立出来。Sring 提供了更直接和容易的方式去解决这个问题。Spring 提供了一对方法让数据结构和数据插入到数据库。第一种方法是依赖于Hibernate,当我们创建了对象,并且加入注释@Entity时,Hibernate就会为我们创建表结构。同时,我们使用import.sql的文件去初始化数据。第二种方法是,我们使用旧的Sp..

2020-10-11 16:07:54 160

原创 5.应用测试 5.1测试Spring MVC的控制器

5.1测试Spring MVC的控制器在前面的章节中,我们创建了我们项目,但是我们应该怎样知道它的执行是我们想要的结果。更重要的是,我们应用怎么知道过了6个月或1年之后,这些应用还可以执行良好。这个问题的解决就是通过一系列的测试代码。在第四章节中,我们自定义了starter,现在我们需要将这些代码移除。现在我们需要创建基础测试去测试我们的应用,确保所有的控制器都会暴露出RESTful URLs的信息。这人测试就是我们所知道的Unit Testing,我们要确保所以测试相关的bean要初始化并...

2020-10-11 15:59:52 237

原创 Ubuntu安装RabbitMQ及RabbitMQ基于使用

一.安装1、安装erlang由于rabbitMq需要erlang语言的支持,在安装rabbitMq之前需要安装erlangsudo apt-get install erlang-nox2、安装Rabbitmq更新源sudo apt-get update安装sudo apt-get install rabbitmq-server3、启动Rabbitmqsudo service rabbitmq-server start4、停止Rabbitmqsudo ser..

2020-09-28 17:30:38 226

转载 如何在 Ubuntu 上安装 MongoDB

MongoDB是一个越来越流行的自由开源的 NoSQL 数据库,它将数据存储在类似 JSON 的灵活文档集中,这与 SQL 数据库中常见的表格形式形成对比。你很可能发现在现代 Web 应用中使用 MongoDB。它的文档模型使得使用各种编程语言能非常直观地访问和处理它。mongodb Ubuntu在本文中,我将介绍两种在 Ubuntu 上安装 MongoDB 的方法。在基于 Ubuntu 的发行版上安装 MongoDB使用 Ubuntu 仓库安装 MongoDB。简单但不是最..

2020-09-28 17:26:53 1868

原创 4.4使用@Enable*注释去切换配置

多数情况下,Spring Boot都是自动去评估路径和探测配置的信息,然后快速获取简单应用。但是,有时候,我们想提供配置类,但是要求不需要Spring Boot去自动发现这个配置是否包含,也就是说,我们想自己判断这个配置的有用性。 这样的话,我们将修改注释而不是spring.factories的路径。4.4.1代码实现1.首先,我们需要注释掉count-starter/src/main/resource/spring.factories文件下的配置。 #org.springfram..

2020-08-07 17:42:46 147

原创 4.3配置自定义情况的Bean实例

4.3配置自定义情况的Bean实例在前面的例子中, 我们已经学习了如何去获取基础的Spring Boot Strater。在包含jar的应用路径下,DbCountRunner bean将会自动创建和添加到应用的上下文件中。在非常前的章节中,我们已经看到Spring Boot有能力去依赖一些情况来加载bean,例如特殊的路径下的类,已经存在的bean等。在这个章节,我们将会创建一个DbCountRunner,在bean实例存在时创建和加入到应用上下文中。4.3.1代码实现1.在DbCo...

2020-08-07 17:41:15 138

原创 4.2创建自定义Spring Boot自动配置Starter

4.2创建自定义Spring Boot自动配置Starter这个章节,我们将会创建我们自己的Spring Bootstarter,这个starter会包含一个自动依赖在我们的项目中。在第二章节中, 我们已经知道如何去创建数据库属性对象。让我们创建一个简单的starter,这个starter会创建另外一个CommandLineRunner,然后收集Repository的实例并且打印所有的实例。4.2.1代码实现1.首先我们创建一人新文件夹db-count-starter在项目根目录...

2020-08-07 17:39:52 121

原创 4.自定义的Spring Boot Starters

在先前的章节中我们做了很多的配置,并且在Spring Boot应用中还有许多的自动配置。现在,我们需要看一下这些自动装配的源码和写一些我们自定义的starters.自定义的starters对于公司的项目来说是非常有用的。这样我们就可以自定义配置系统,包和配置项去解决数据库,连接池,http客户端等我们自己需要的。这章节,我们将会深入研究starters,这样的话,我们就可以知道写一个自定义的starter需要哪些规则以达到我们创建自己starter的目的。4.1了解Spring Boot的自动装..

2020-08-07 17:36:51 106

原创 3.5用户访问使用HTTPS

另外一个普遍的情况是在应用中会有两份个HTTP端口连接,一个是HTTP,另外一个是HTTPS。3.5.1准备工作为了创建HTTPS的连接,我们需要创建在自己的电脑上创建证书,这个证书可以加密和解密在SSL的交流过程中。如果你是Unix或Mac,执行以下命令创建证书:$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA如果你是windows,那么,先进入jdk安装的路径,即JAVA_HOME的bin目录下,然后执行以下的命...

2020-06-11 20:26:48 492

原创 3.4选择性嵌入服务容器

虽然Spring Boot默认嵌入了Tomcat作为容器,但是并不代表我们只能使用Tomcat作为服务容器。Spring Boot提供我们即时即用的starts,所以我们也可以使用Jetty和Undertow。如果我们想要使用Jetty作为服务容器,我们老板娘添加Jetty的Starter。3.4.1代码实现Tomcat是Spring Boot默认的服务容器,所以我们现在需要将Tomcat移除掉。在build.gradle文件中加入下面代码: configurations {com...

2020-06-11 20:25:15 159

原创 3.3通过EmbeddedServletContainerCustomizer调用Tomcat

Spring Boot暴露了许多服务属性,这个属性可以用于配置一些事情,如PORT,SSL,其它的可以简单地配置在application.properties文件中。然而,如果我们想要做更加复杂的调用,Spring Boot提供给我们EmbeddedServletContainerCustomizer接口去声明我们的配置。通过使用server.sessiontimout设置超时时间,我们将使用EmbeddedServletContainerCustomizer去控制我们的应用。3.3.1代码实...

2020-06-11 20:23:50 5839

原创 3.2配置自定义的路径映射

我们想要通过http://localhost;8080/internal/application去暴露我们内部的application.properties文件. 我们应该如何去做,下面就来实现这个功能。3.2.1代码实现让我们在WebConfiguration中加入addResourceHandlers的方法。 @Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.add..

2020-06-11 20:22:25 530

原创 3.调整web框架行为 3.1配置路径匹配形式

3.1配置路径匹配形式当我们创建web应用时,它并不总是是一个默认的应用,映射配置适当可取的。我们想要去创建自己的RESTful URLs这里包含了点(.),Spring处理它是以分隔符处理的,例如点(.)在path.xml中,我们不想认为是一个斜线,像在/home/等。Spring提供了方法让我们去处理。在第二章节中,我们引入了WebConfiguration类,这个类继承了WebMvcConfigurerAdapter。这样的继承允许我们去重写方法,例如添加过滤器,转换器等。它也有方法让...

2020-06-11 20:21:09 319

原创 2.7配置自定义的Formatters

PropertyEditor由于缺乏安全性,所以Spring引入了Formatter接口取代PropertyEditor.Formatters的目的是提供相似的功能,但是完全是线程安全的,和焦点在大量String的对象类型,并转换一个对象到String.2.7.1代码实现首先,我们先创建一个新的包formatters在src/main/java/org/owen/bookpub包路径下。 接着,我们创建BookFormatter类并实现Formatter接口。 public class..

2020-06-11 20:19:18 1670

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除