自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring Batch 介绍

1,Spring Batch 介绍Spring Batch 是一个开源的、全面的、轻量级的批处理框架,通过 Spring Batch 可以实现强大的批处理应用程序的开发。Spring Batch 还提供记录/跟踪、事务管理、作业处理统计、作业重启以及资源管理等功能。Spring Batch 结合定时任务可以发挥更大的作用。Spring Batch 提供了 ItemReader、ItemProcessor 和 ItemWriter 来完成数据的读取、处理以及写出操作,并且可以将批处理的执行状态持久化

2021-08-30 15:45:53 4288

原创 SpringBoot - 集成MQTT教程

MQTT 协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议。具体介绍可以查看我之前写的文章(点击跳转)。​ 本文演示 SpringBoot 项目中如何集成 MQTT,并实现消息的发送。一、安装配置1,依赖配置编辑项目的 pom.xml 文件,添加如下依赖:<dependency> <groupId>org.springframework.integration</groupId> <arti

2021-08-24 13:57:14 2859 1

原创 SpringBoot - MyBatis-Plus使用详解(一)

1,什么是 MyBatis-Plus?(1)MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。我们可以理解为它已经封装好了一些 CRUD 方法,我们不需要再写 xml 了,直接调用这些方法就行,类似于 JPA。官网地址:https://mp.baomidou.com/GitHub 主页:https://github.com/baomidou/mybatis-plus(2)MyBatis-Plus 框架

2021-08-23 14:49:05 805 1

原创 SpringBoot - Kafka的集成与使用详解 (消费者)

六、消费者1:指定 topic、partition、offset1,使用 topics 指定 topic(1)监听器主要是使用 @KafkaListenter 注解即可,而通过 topics 参数设置监听的 topic(可监听多个,用逗号隔开):其他参数介绍:id(消费者 ID)、 groupId(消费组 ID)@Componentpublic class KafkaConsumer { // 消费监听 @KafkaListener(id = "consumer1",groupId

2021-08-20 15:12:08 5510

原创 SpringBoot - Kafka的集成与使用(生产者)

Kafka 是一个由 LinkedIn 开发的分布式消息系统,详细介绍可以查看之前的文章。本文演示如何在 Spring Boot 项目中集成并使用 Kafka。一、安装配置1,环境准备关于 Kafka 和 ZooKeeper 的安装 省略2,项目配置(1)首先编辑项目的 pom.xml 文件,添加 spring-kafka 依赖:<dependency> <groupId>org.springframework.kafka</groupId>

2021-08-20 11:16:58 1889

原创 被攻击的一些重点系统漏洞整理

一、OA系统泛微(Weaver-Ecology-OA)???? 泛微OA E-cology RCE(CNVD-2019-32204) - 影响版本7.0/8.0/8.1/9.0https://xz.aliyun.com/t/6560???? 泛微OA WorkflowCenterTreeData接口注入(限oracle数据库)https://zhuanlan.zhihu.com/p/86082614???? 泛微ecology OA数据库配置信息泄露https://www.cnblogs.co

2021-08-18 15:45:59 1452

原创 SpringBoot 集成 ShedLock 分布式锁

SpringBoot 集成 ShedLock 分布式锁一:ShedLock 简介ShedLock是一个在分布式环境中使用的定时任务框架,用于解决在分布式环境中的多个实例的相同定时任务在同一时间点重复执行的问题。ShedLock确保计划的任务最多同时执行一次。如果一个任务正在一个节点上执行,它会获得一个锁,该锁将阻止从另一个节点(或线程)执行同一任务。请注意,如果一个任务已经在一个节点上执行,则在其他节点上的执行不会等待,只是将其跳过。。简单来说,ShedLock本身只做一件事情:保证一个任务最多同时执行

2021-08-18 14:02:56 883

原创 SpringBoot - 缓存的使用详解

Spring 3.1 中开始对缓存提供支持,核心思路是对方法的缓存,当我们调用一个方法时,将方法的参数和返回值作为 key/value 缓存起来,当再次调用该方法时,如果缓存中有数据,就直接从缓存中获取,否则再去执行该方法。​ Spring 并未提供缓存的实现,我们可以自由选择缓存的实现,目前 Spring Boot 支持的缓存有 JCache、EhCache 2.x、Redis…。不过无论使用那种缓存实现,不同的只是缓存配置,开发者使用的缓存注解都是一样的。一、使用 Ehchche 2.x 缓存

2021-08-18 13:46:43 1040

原创 SpringBoot - Redis的整合与使用

一、Redis 的整合与使用:单 Redis 实例1,安装配置(1)首先编辑 pom.xml 文件,添加相关依赖:Spring Boot 借助于 Spring Data Redis 为 Redis 提供了开箱即用的自动化配置,我们只需要添加相关依赖并配置 Redis 连接信息即可。默认情况下,spring-boot-starter-data-redis 使用的 Redis 工具是 Lettuce。考虑到有的开发者习惯使用 Jedis,这里从 spring-boot-starter-data-red

2021-08-18 11:10:33 749

原创 SpringBoot - 定时任务

SpringBoot - 定时任务定时任务是企业级开发中最常见的功能之一,如定时统计订单数、定时进行数据库备份、定时发送邮件等。简单的定时任务可以直接通过 Spring 的 @Scheduled 注解实现,复杂的定时任务则可以通过集成 Quartz 来实现。本文先介绍前者。一、使用 @Scheduled 注解实现定时任务1,开启定时任务首先在项目启动类上添加 @EnableScheduling 注解开启定时任务:@SpringBootApplication@EnableSchedulingpu

2021-08-18 10:06:56 1216

原创 SpringBoot - 后端数据校验的实现

SpringBoot - 后端数据校验的实现通常来说,为了提高系统运行效率,都会在前端进行数据校验,但后端的数据校验仍然必不可少,因为用户还是可能在获取数据接口后手动传入非法数据,所以后端还是需要做数据校验。对于数据校验,Spring Boot 也提供了相关的自动化配置解决方案,下面通过样例进行演示。一、普通校验1,添加依赖首先编辑项目的pom.xml 文件,添加数据校验相关的依赖。<dependency> <groupId>org.springframewor

2021-08-17 14:25:31 1102

原创 SpringBoot - 网络请求客户端WebClient使用详解(异常处理)

SpringBoot - 网络请求客户端WebClient使用详解(异常处理)请求异常处理1,默认异常(1)当我们使用 WebClient 发送请求时, 如果接口返回的不是 200 状态(而是 4xx、5xx 这样的异常状态),则会抛出 WebClientResponseException 异常。@RestControllerpublic class HelloController { // 创建 WebClient 对象 private WebClient webClient

2021-08-17 11:46:48 5778

原创 SpringBoot - 网络请求客户端WebClient(文件处理)

SpringBoot - 网络请求客户端WebClient(文件处理)一、文件下载1,下载图片(1)下面是一个图片下载的样例,下载一个网络上的图片并保存到本地。@RestControllerpublic class HelloController { // 创建 WebClient 对象 private WebClient webClient = WebClient.builder() .build(); @GetMapping("/test

2021-08-17 10:57:49 1386

原创 SpringBoot - 网络请求客户端WebClient使用详解

在 Spring 5 之前,如果我们想要调用其他系统提供的 HTTP 服务,通常可以使用 Spring 提供的 RestTemplate 来访问,不过由于 RestTemplate 是 Spring 3 中引入的同步阻塞式 HTTP 客户端,因此存在一定性能瓶颈。根据 Spring 官方文档介绍,在将来的版本中它可能会被弃用。​ 作为替代,Spring 官方已在 Spring 5 中引入了 WebClient 作为非阻塞式 Reactive HTTP 客户端。下面通过样例演示如何使用 WebClie

2021-08-17 10:33:24 24996 1

原创 SpringBoot - 网络请求模版类RestTemplate使用详解

SpringBoot - 网络请求模版类RestTemplate使用详解一、基本介绍1,什么是 RestTemplate?(1)RestTemplate 是 Spring 提供的用于访问 Rest 服务的客户端,RestTemplate 提供了多种可以便捷访问远程 Http 服务的方法,能够大大提高客户端的编写效率。RestTemplate 是 Spring 3 中引入的同步阻塞式 HTTP 客户端。根据 Spring 官方文档介绍,在将来的版本中它可能会被弃用,因为他们已在 Spring 5 中引

2021-08-16 16:15:11 1950

原创 SpringBoot - 获取POST请求参数详解

介绍了 Controller 如何接收通过 GET 方式传递过来的参数,下面接着演示如何接收通过 POST 方式传递过来的参数。一、接收 Form 表单数据1,基本的接收方法(1)下面样例 Controller 接收 form-data 格式的 POST 数据:package com.example.demo; import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bi

2021-08-16 14:33:52 5990

原创 SpringBoot - 获取Get请求参数详解

SpringBoot - 获取Get请求参数详解一、参数直接在路径中(1)假设请求地址是如下这种 RESTful 风格,hangge 这个参数值直接放在路径里面:`http:``//localhost:8080/hello/hangge`(2)Controller 可以这么获取该参数:package com.example.demo; import org.springframework.web.bind.annotation.PathVariable;import org.springf

2021-08-16 14:09:20 1146

原创 SpringBoot - 面向切面编程 AOP

一、基本介绍1,什么是 AOP(1)AOP 为 Aspect Oriented Programming 的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。(2)利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。一个 AOP 的使用场景: 假设一个已经上线的系统运行出现问题,有时运行得很慢。为了检测出是哪个环节出现了问题,就需要监控每一个方法的执行时间,再根据执行时间进行分

2021-08-16 11:41:37 361

原创 SpringBoot - 配置类的实现

一、基本用法1,基本介绍Spring Boot 推荐使用 java 配置完全代替 XML 配置,java 配置是通过 @Configration 和 @Bean 注解实现的。二者作用如下:@Configration 注解:声明当前类是一个配置类,相当于 Spring 中的一个 XML 文件@Bean 注解:作用在方法上,声明当前方法的返回值是一个 Bean2,简单样例(1)首先创建一个自定义的配置类 MyConfigration:使用 @Configration 注解将该类声明为

2021-08-16 10:52:56 868

原创 SpringBoot - 使用Spring Data JPA操作数据库

一、基本介绍1,什么是 JPAJPA 是 Java Persistence API 的简称,中文名 Java 持久层 API。我们都知道 Hibernate 框架是一个 ORM 框架,而 JPA 则是一种 ORM 规范。JPA 和 Hibernate 的关系就像是 JDBC 与 JDBC 驱动的关系,即 JPA 制定了 ORM 规范,而 Hibernate 是这些规范的实现。因此从功能来说,JPA 相当于 Hibernate 的一个子集。事实上,是先有 Hibernate 后有 JPA,JPA 规范

2021-08-13 15:54:21 983 1

原创 SpringBoot - 使用MyBatis操作数据库

SpringBoot - 使用MyBatis操作数据库一、基本介绍1,什么是 MyBatisMyBatis 是一款优秀的持久化框架,原名叫做 iBatis,2010 年改名为 MyBatis。MyBatis 支持定制化 SQL、存储过程以及高级映射。MyBatis 几乎避免了所有的 JDBC 代码手动设置参数以及获取结果集。在传统的 SSM 框架整合中,使用 MyBatis 需要大量的 XML 配置。而在 Spring Boot 中,MyBatis 官方提供了一套自动化配置方案,可以做到 MyB

2021-08-13 14:49:52 500

原创 SpringBoot - 使用JdbcTemplate操作数据库

SpringBoot - 使用JdbcTemplate操作数据库一、基本介绍1,什么是 JdbcTemplateJdbcTemplate 是 Spring 提供的一套 JDBC 模版框架,利用 AOP 技术来解决直接使用 JDBC 时大量重复代码的问题。JdbcTemplate 虽然没有 MyBatis 那么灵活,但是比直接使用 JDBC 要方便很多。2,安装配置(1)首先编辑 pom.xml 文件,添加相关依赖:spring-boot-starter-jdbc:提供对 JDBC 数据库的

2021-08-13 14:25:33 894

原创 SpringBoot - Lombok使用详解

SpringBoot - Lombok使用详解我们创建 POJO 类时,经常需要先写属性,然后手写或者自动生成 get 和 set 方法,然后还要重写 toString 方法…一系列操作下来,这个 POJO 类便会产生太多的样板式代码。​ 这种传统的方式不仅使得代码十分臃肿,有时也不方便维护,比如:当变量名或者是修饰符改变了,我们就要删除 set、get 方法重新生成。​ 而 Lombok 出现就是为了解决代码书写的冗余问题,下面对其进行详细进行介绍。一、基本介绍1,Lombok 介绍

2021-08-13 13:53:30 1655

原创 Devops实现之Yapi集成到Jenkins (十一)

简单介绍:Yapi是一个集后端、前端、测试于一体的开源接口平台,关于Yapi可以在网上查阅更多资料,最近在研究Yapi与Jenkins持续集成并判断生成的测试报告中是否存在失败的case从而发送报警邮件使用原因:后端使用Yapi来维护接口文档,前端不用再担心接口变动导致联调过程中某个接口字段变动未及时同步等问题,测试也可以方便的使用后端的接口文档进行接口自动化测试,对测试同学来说这是一个做接口自动化测试学习成本很低并且容易在实际项目中推行的平台,在工作中要接入这个接口平台可能需要后端前端以及测试共同完成(

2021-08-11 11:44:31 724

原创 Devops实现之Pipeline工作流框架 (十)

Pipeline 是一套运行于 jenkins 上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化。postman 接口自动化测试项目执行结果其他项目构建成功后,会触发接口自动化测试项目。接口自动化测试项目分为 3 个阶段:Preparation,Build 和 Result。下图显示项目的执行效果。新建项目,选择 “流水线” 项目新建 Pipeline 项目很简单:Jenkins 选择 “新建” -> “流水线”(Pipeline)

2021-08-10 09:32:28 1234

原创 Devops实现之调试工具postman(九)

一、Postman背景介绍用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。今天给大家介绍的这款网页调试工具不仅可以调试简单的css、html、脚本等简单的网页基本信息,它还可以发送几乎所有类型的HTTP请求!Postman在发送网络HTTP请求方面可以说是Chrome插件类产品中的代表产品之一。二、Postman的操作环境postman适用于不同的操作系统,Postman Mac、Windo

2021-08-06 14:52:04 247

原创 Devops实现之jenkins扩容 (八)

一. 通信协议为了master和agent能够正常通信,连接的建立必须是双向的。SSH: master通过标准的SSH协议连接slave。Java Web Start: Java 应用在agent 主机上启动,Master和agent通过TCP建立连接。 这种方法往往是在agnet在防火墙内部,master不能发起连接的情况下使用。Windows service: 这种方法是注册 agnet在远端主机上作为一个服务。该方法设置比较繁琐,且需要图形接口的支持。二. 设置 agent关联slav

2021-08-06 14:25:36 599

原创 Devops实现之自动化测试(七)

Jmeter+Maven+Jenkins自动化框架搭建一.前言前段时间公司正好准备开始进行接口测试及接口监控方面的工作,为了使得接口测试及接口功能监控,所以我根据以往对Jmeter的使用经验,设计了一套最简单的Jmeter持续集成接口测试框架。虽然网上这块的资料也不少,但在做的过程中也遇到不少的坑,写作本文主要的目的是为了记录,但鉴于目前网上能找到的相关资料都写得比较杂乱,所以本着开源共享的精神,也一并分享于此,希望更多人能够受益,大家一起进步。本文将由以下几个部分组成:框架组成简介框架选型特点

2021-08-06 13:51:15 730

原创 Devops实现之Jmeter (六)

一、下载登录官网Jmeter下载,得到压缩包jmeter-5.0.tgz,下载地址:http://jmeter.apache.org/download_jmeter.cgi二、安装将下载得到的压缩包解压即可,这里我解压到自己电脑的路径为E:\Mysoftware\apache-jmeter-5.0。三、运行点击bin目录下的jmeter.bat即可启动Jmeter。启动后可以看到一个java编写的图形界面。四、一个简单的压测实例现有一个http请求接口http://localhost:8

2021-08-05 14:48:30 339

转载 spring cloud-链路追踪和健康检查(九)

18 链路追踪18.1 概念分布式计算八大误区网络可靠。延迟为零。带宽无限。网络绝对安全。网络拓扑不会改变。必须有一名管理员。传输成本为零。网络同质化。(操作系统,协议)链路追踪的必要性如果能跟踪每个请求,中间请求经过哪些微服务,请求耗时,网络延迟,业务逻辑耗时等。我们就能更好地分析系统瓶颈、解决系统问题。因此链路跟踪很重要。《链路追踪》看看微服务之熵。我们自己思考解决方案:在调用前后加时间戳。捕获异常。链路追踪目的:解决错综复杂的服务调用中链路的查看。排查慢服务。市面上

2021-08-02 09:42:56 507 1

转载 spring cloud-配置中心(八)

17 配置中心17.1 概念为什么需要配置中心单体应用,配置写在配置文件中,没有什么大问题。如果要切换环境 可以切换不同的profile(2种方式),但在微服务中。微服务比较多。成百上千,配置很多,需要集中管理。管理不同环境的配置。需要动态调整配置参数,更改配置不停服。配置中心介绍分布式配置中心包括3个部分:存放配置的地方:git ,本地文件 等。config server。从 1 读取配置。config client。是 config server 的客户端 消费

2021-08-02 09:42:16 200

转载 spring cloud-网关(七)

16 网关16.1 概念服务治理,服务注册发现,服务调用,熔断。已经学完。微服务基本模块已经有了,也可以做微服务了。但完成一个复杂的业务,可能需要多个微服务合作来完成,比如下单,需要用户服务,支付服务,地图服务,订单服务。一般是我们对外服务的窗口,进行服务内外隔离。一般微服务都在内网,不做安全验证,就好像:很多明星,可以独立开演唱会(独立提供服务)。也可以去春晚(微服务群提供服务)。但一台春晚就不能让 观众一个一个调用了。观众要调用,需要检票啥的,检票就类似于网关,进来之后,界面随便看,不会说你 看

2021-08-02 09:41:30 222

转载 spring cloud-熔断(六)

15 熔断15.1 概念:概述前面我们学过:Eureka实现了服务注册与发现服务间调用。Ribbon实现了客户端负载均衡Feign实现了声明式 API调用这节学习 微服务间的容错​ 在分布式系统下,微服务之间不可避免地会发生相互调用,但每个系统都无法百分之百保证自身运行不出问题。在服务调用中,很可能面临依赖服务失效的问题(网络延时,服务异常,负载过大无法及时响应)。因此需要一个组件,能提供强大的容错能力,为服务间调用提供保护和控制。我们的目的:当我自身 依赖的服务不可用时,服务自身不会

2021-08-02 09:37:37 404

转载 spring cloud-Feign声明式REST调用(五)

14. Feign声明式REST调用14.1 概念OpenFeign是Netflix 开发的声明式、模板化的HTTP请求客户端。可以更加便捷、优雅地调用http api。OpenFeign会根据带有注解的函数信息构建出网络请求的模板,在发送网络请求之前,OpenFeign会将函数的参数值设置到这些请求模板中。《Ribbon流程图》feign主要是构建微服务消费端。只要使用OpenFeign提供的注解修饰定义网络请求的接口类,就可以使用该接口的实例发送RESTful的网络请求。还可以集成Ribb

2021-07-30 14:31:59 386

转载 spring cloud-Ribbon负载均衡(四)

13 Ribbon负载均衡13.1 两种负载均衡​ 当系统面临大量的用户访问,负载过高的时候,通常会增加服务器数量来进行横向扩展(集群),多个服务器的负载需要均衡,以免出现服务器负载不均衡,部分服务器负载较大,部分服务器负载较小的情况。通过负载均衡,使得集群中服务器的负载保持在稳定高效的状态,从而提高整个系统的处理能力。软件负载均衡:nginx,lvs硬件负载均衡:F5我们只关注软件负载均衡,第一层可以用DNS,配置多个A记录,让DNS做第一层分发。第二层用比较流行的是反向代理,核心原理:代

2021-07-30 14:28:11 416

转载 spring cloud-服务间调用(三)

12 服务间调用​ 微服务中,很多服务系统都在独立的进程中运行,通过各个服务系统之间的协作来实现一个大项目的所有业务功能。服务系统间 使用多种跨进程的方式进行通信协作,而RESTful风格的网络请求是最为常见的交互方式之一。http。​ 思考:如果让我们写服务调用如何写。硬编码。不好。ip域名写在代码中。目的:找到服务。根据服务名,找相应的ip。目的:这样ip切换或者随便变化,对调用方没有影响。Map<服务名,服务列表> map;加上负载均衡。目的:高可用。sp

2021-07-30 14:14:16 123

转载 Spring Cloud-服务注册与发现(二)

11 服务注册与发现11.1 Eureka 单节点搭建pom.xml<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency>有的教程中还引入spring-boot-starter-web,其实不用。因

2021-07-30 13:56:51 564

转载 Spring Cloud-概述(一)

1 课程概述Spring Cloud技术点Eureka:服务注册与发现,用于服务管理。Feign: web调用客户端,能够简化HTTP接口的调用。Ribbon:基于客户端的负载均衡。Hystrix:熔断降级,防止服务雪崩。Zuul:网关路由,提供路由转发、请求过滤、限流降级等功能。Config:配置中心,分布式配置管理。Sleuth:服务链路追踪Admin:健康管理网约车实战服务划分项目结构接口设计分布式锁分布式事务关键业务2 网约车介绍先介绍网约车项目,

2021-07-30 11:46:40 234

原创 SQL注入的本质

SQL注入的本质注入攻击的本质: 把用户输入的数据当做代码执行。两个关键条件:第一个是用户能够控制输入第二个是原本程序要执行的代码,拼接了用户输入的数据然后进行执行针对SQL语句的注入,也可以理解为用户输入的数据当做SQL语句的代码执行显错注入-联合查询(Mysql数据库)的基本流程重要知识点: 通过系统自带库查询数据通过系统自带库查询数据 Mysql在5.0以上版本加入了information_schema 这个系统自带库其中保存着关于MySQL服务器所维护的所有其他数据库的信息

2021-07-27 16:22:52 1607 5

原创 字体反爬虫

字体基础\1. 安装字体命令yum -y install fontconfig\2. 查看已安装字体(1) 查看linux已安装字体fc-list(2) 查看安装的中文字体fc-list :lang=zh\3. 安装需要的字体(1) 创建目录mkdir -p /usr/share/fonts/my_fonts(2) 将要安装的字体上传到该文件夹下(3) 获取相关字体,以 windows 为例上传到刚

2021-07-27 11:11:06 339

空空如也

空空如也

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

TA关注的人

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