- 博客(19)
- 资源 (86)
- 收藏
- 关注
原创 springbatch导出mysql数据到外部文件
前言在之前的一篇中,我们简单介绍了如何通过自定义itemReader和itemWriter读取外部数据然后导入到mysql中,下面我们简单介绍一下如何将mysql的数据通过springbatch批量导出举个实际的场景,我们需要将数据库的某个表的数据导出到excel中,如果数据量特别大的时候使用java单线程去做这个事情,会比较耗时而且容易因为IO问题中途断掉,如果使用springbatch批量...
2019-12-29 22:27:40 1284
原创 springbatch读取外部数据到mysql
前言在上一篇springboot整合springbatch中,我们简单介绍了springbatch的基本概念和一个基础使用demo。我们知道springbatch的强大之处在于其批处理数据时的高效、快速以及可自定义执行步骤的处理大批量数据,下面通过一个简单的案例来说说如何使用springbatch读取外部的文件,比如xml、json或其他能被解析的格式的数据导入到mysql中执行步骤定义j...
2019-12-29 21:58:19 943
原创 springboot整合springbatch
springbatch几个概念springbatch是一个用于进行批处理数据的轻量级框架,用于后台批量执行一些大数据相关的任务,和spring无缝整合先来看看官方的一张关于springbatch的架构图Job 任务Step 任务里包含的步骤ItemReader 单个步骤里的输入(input)ItemProccesor input的处理ItemWriter 单个步骤里的输出(out...
2019-12-29 18:40:17 869 2
原创 aop源码分析之 —— 创建代理对象
前言在上一篇我们分析了AOP生成代理对象的源码流程,我们知道,springaop中,生成代理对象一般有2种,当目标对象实现了接口时,默认使用JDK代理,否则就采用cglib代理,而且,最终调用目标对象的方法的时候,我们发现了是代理对象调用的,如下图所示于是就好奇了,spring到底是怎么完成了代理过程的呢?即这个代理对象是通过什么样的方式完成的呢?由于本篇研究JDK动态代理,下面,我们先通过...
2019-12-27 21:42:41 19746 2
原创 spring aop源码分析
什么是AOP面试中经常被问到什么是AOP,其实AOP是一种技术实现,或者说是一种实现标准,实现AOP的技术有多种,但是通常所说的AOP,大家会不自觉的想到spring aop,因为spring aop被问了很多次。本文想从源码的执行流程上来简单说说AOP的实现原理。AOP底层技术实现aop的底层技术其实就是大家熟知的代理,spring aop中的代理主要有两种,cglib代理和JDK动态代理...
2019-12-25 22:50:54 831
原创 java设计模式之适配器模式
适配器定义将一个类的接口转成客户期望的另外一个接口。适配器模式使得原本由于接口不匹配而不能一起工作的那些类可以一起工作。应用场景上述这是官方的定义,用一个实际的生活案例来翻译一下适配器的应用场景,比如在中国有一个充电器的插头是3孔扁得,但是到了德国却变成另外一种2孔的了,我们总不能更换人家德国的插孔吧,怎么办?那就只好使用一个转换器了,通过这个转换器来适配我们的手机进行充电适配器类型适...
2019-12-23 18:59:17 553
原创 spring循环依赖源码分析
绪论在使用spring或者springboot项目开发中,经常通过注入的方式完成一个bean对另一个bean的引用,比如classA中药注入B的bean,写法如下@Autowiredprivate B b而B中要注入A的话就是下面的写法了@Autowiredprivate A a用法非常简单,一目了然,用习惯了就成自然了,觉得就是那么回事,但小编最近读了点儿spring源码,就想...
2019-12-22 23:18:06 34962 2
原创 selenium模拟登陆去哪儿网
序言在模拟网页的表单登陆的时候,比较头疼的一个问题就是图片验证码的情况,碰到了验证码,比如像普通的文字图片类型的验证码,目前一个比较好的思路就是,通过selenium自身提供的截图功能,对指定的图片验证码区域进行截图,然后进行识别,最后填充表单进行登陆网上不少资料关于验证码识别登陆这一块,都没有一个比较完整的可参考的代码,下面说说我的具体解决思路和过程代码思路1、登陆网页截图并保存2、找...
2019-12-15 23:02:58 813
原创 selenium模拟登陆豆瓣网
前言随着网站安全做的越来越好,不少网站,直接去爬取数据是无法爬出来的,必须要验证登陆,即登陆之后才能做后面的操作,因此需要解决的第一步就是登陆登陆的常用方式:1、使用request库,模拟post请求2、使用框架自己集成的,比如在使用scrapy的时候,可以直接模拟登陆3、使用selenium模拟浏览器登陆前两种之前有大概的分享,下面使用selenium的方式模拟登陆selenium...
2019-12-15 16:52:17 6302
原创 java使用多线程导出excel
前言在一个业务中,需要将数据库的一张日志表导出到excel中做统计分析归类,由于单表的数据量特别大,发现在最终导出excel的时候,由于数量太大,导出速度特别慢,想了一些办法,不管使用何种API,单线程始终是操作的瓶颈,因此最终考虑使用多线程进行改善总体思路:1、数据总量分段2、每个线程处理不同分段的数据3、提交线程池下面来看具体的代码,为测试方便,这里直接使用一个测试接口进行调用,...
2019-12-11 18:55:42 73022 13
原创 java使用多线程查询大批量数据
前言在某些时候,一旦单表数据量过大,查询数据的时候就会变得异常卡顿,虽然在大多数情况下并不需要查询所有的数据,而是通过分页或缓存的形式去减少或者避免这个问题,但是仍然存在需要这样的场景,比如需要导出一大批数据到excel中,导出数据之前,首先得把数据查询出来吧?这个查询的过程,数据量一旦过大,单线程查询数据将会成为瓶颈,下面尝试使用多线程来尝试查询一张数据量较大的表由于代码逻辑不是很难,直接上...
2019-12-11 18:18:22 73442 60
原创 java设计模式之策略模式
导论策略模式作为设计模式的一种,使用频率也是相对来说比较高的,在Java中,当我们学习TreeSet集合的时候,就采用了经典的策略模式的思想,本文主要讲解策略模式其思想是针对一组算法,将每一种算法都封装到具有共同接口的独立的类中,从而是它们可以相互替换。策略模式的最大特点是使得算法可以在不影响客户端的情况下发生变化,从而改变不同的功能策略模式体现了面向对象程序设计中非常重要的两个原则:1、...
2019-12-10 15:04:25 585
原创 java设计模式之责任链模式
什么是责任链:责任链是一种思想,类比现实生活中,在一种需要审批的业务中,用户提交了请求之后就不用管了,至于后续业务中具体是谁审批通过的,用户并不关心也无从得知,只要最终审批通过了就可以。映射到责任链的这一种设计模式上,解释来说就是:某一个提交的请求对象,在得到最终的结果之前,中间可能要经过多个对象的处理,这些处理请求的对象前后之间存在前置和后继的关系,连接在一起就形成了一个处理链条,对于链条上...
2019-12-09 15:00:54 559
原创 java设计模式之观察者模式
前言使用过springcloud的同学大概知道,不同的微服务都可以使用统一的配置中心,不同的微服务只需要将地址指向这个配置中心的IP及服务名就可以使用,后续一旦当配置中心的配置发生了某些变化,各个微服务模块都可以刷新并连接使用到最新的配置文件,不仅如此,许多的应用组件,比如zookeeper等,常用的带有监听功能的组件都有一种思想在里面,就是观察者模式的思想观察者模式定义对象之间的一对多依赖,...
2019-12-06 17:23:27 555
原创 java设计模式之模板模式
一、概述模板模式从字面上理解就是,定义一个模板,然后被后续的各个业务中使用,定义模板,就是定义框架、结构、原型,也就是大家共同遵守的某个约定,有了模板,在具体的使用中,就可以对它进行后续的完善、充实在java中,模板采用抽象类定义,公共的结构化逻辑在抽象类中完成,非公共的部分或逻辑抽象出去,留给子类去实现总的来说,模板模式就是通过抽象类来定义一个逻辑模板,逻辑框架、逻辑原型,然后将无法决定的...
2019-12-06 12:51:01 570
原创 springboot实现定时任务常用的2种方式
前言在业务中,经常需要使用到定时任务做一些逻辑,比如数据批量定时备份、定时清理脏数据等,这种情况下就需要使用到定时任务进行任务调度,下面介绍两种常见的使用方式方式1:@Scheduled这种方式最简单,也最灵活,只需要将某个任务类以bean的形式注入到spring容器中进行管理即可@Component@EnableSchedulingpublic class ScheduleTaskT...
2019-12-05 17:55:32 639
原创 springboot整合alibbaba-dubbo
前言dubbo自从19年托管给apache之后,再次换发新的生机,之前从一个重量级的rpc框架经过革新后,有了很多方面的提升,目前阿里开源的系列生态组件中,dubbo也成为其作为服务治理中一个非常重要的框架,可以单独在项目中使用,也可以结合其他组件共同使用从而完成微服务的治理下面要说的是使用springboot整合dubbo,以及使用阿里的nacos作为服务管控台对服务提供者和消费者进行运维监...
2019-12-04 16:42:04 10746
原创 idea构建spring源码环境
前言最近抽空在摸索spring源码,就想在idea中把spring源码环境给跑起来,以便于自己进行断点调试和学习,但在自己构建的时候才发现使用idea构建spring源码的环境的确不是一件简单简单的事情,下面就记录一下自己构建源码的过程和遇到的坑1、安装gralde环境可以通过这个链接下载合适的版本的gradle,建议不要下载抬高的版本,我这里使用的是4.4的版本,版本太高,后面在idea中...
2019-12-01 15:30:20 1418 1
spring aop实现接口参数变更前后对比和日志记录
2024-05-12
springcloud集成skywalking实现全链路追踪的完整代码
2024-01-07
springboot对接skywalking详解
2023-12-31
spring webflux使用的详细代码
2023-10-26
springboot适配多数据源,多类型数据库代码
2023-07-01
springboot通用限流代码
2023-07-01
springcloud同时整合dubbo与openfeign
2023-05-20
springboot整合sharding-jdbc完整代码
2023-05-14
springboot整合mongodb changestream代码
2022-02-23
SSO案例源码.zip
2021-06-16
fastjson与springboot整合.zip
2021-06-16
spring-IOC代码
2021-06-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人