自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Docker搭建mysql主从复制集群

【代码】Docker搭建mysql主从复制集群。

2023-12-31 15:08:18 423

原创 Docker搭建kafka集群

【代码】Docker搭建kafka集群。

2023-12-29 21:07:59 2232 3

原创 Docker构建zookeeper集群

zookeeper是一种分布式协调服务,用于管理大型主机。在分布式环境中协调和管理服务是一个复杂的过程,ZooKeeper通过其简单的架构和API解决了这个问题。Zookeeper允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性。

2023-12-29 17:30:53 788

原创 python练习--获取网页数据并写入excel保存

python练习:获取网页数据,并通过openpyxl模块写入excel

2023-02-26 00:01:26 966

原创 Spring Data JPA搭建及测试

【代码】Spring Data JPA搭建及测试。

2022-12-31 23:06:02 553

原创 invokeBeanFactoryPostProcessors的理解

nvokeBeanFactoryPostProcessors的理解。

2022-12-26 22:37:50 216

原创 spring学习记录(九)

从上面的执行结果中,我们可以看到从IOC容器中拿到的UserService的bean,其实是一个代理对象,并且成功拦截了login方法,在前后进行了功能的扩展。说起代理设计模式,大家应该都不陌生:一个原始类,一个代理类,都实现相同的接口,扩展类依赖原始类,并在接口的实现中,调用原始类的方法,并且在调用原始类中方法的前后,进行扩展功能的注入,这就是静态代理模式。而java中的动态代理,则是试用Proxy类和InvocationHandler接口,来实现了代理的功能,并且不用写很多的代理类。

2022-12-13 22:13:20 246

原创 spring学习记录(八)

spring作为一个IOC容器,主要作用是进行对象的创建和在容器中进行对象的管理,spring创建对象的时候,主要试用了工厂设计模式,并且对象创建过程是会经过一系列的处理。

2022-12-12 17:30:09 464

原创 spring学习记录(七)

学习中,对复杂对象的创建模式,即:是单例模式,还是非单例模式产生了兴趣。

2022-12-10 14:38:05 940

原创 Mybatis @SelectProvider+SQL实现简单的动态查询

目标1、抛弃mapper的xml文件2、根据插入的实体对象,自动生成动态sql3、实现一个简单的动态查询代码mapper接口:package com.huwc.mapper;import com.huwc.TestMapperProvider;import com.huwc.bean.User;import org.apache.ibatis.annotations.SelectProvider;import java.util.List;public interface

2021-05-24 00:02:56 1974

原创 手写mybatis完整sql插件

问题产生我们在使用mybatis的过程中,如果开启了mysql的日志功能的话,会在控制台打印一些sql的信息,但是日志中的sql语句,是没有拼接参数的,也就是说,是不可以直接放到数据库中执行的。some times,我们在调试问题的时候,会希望有一个直接可以运行的SQL语句,那将方便很多,特别是在sql语句绑定参数很多的时候。现象描述默认的mysql日志配置和打印情况如下:<settings> <setting name="logImpl" value="STDOUT_L

2021-05-22 23:21:49 2267 17

原创 Mybatis 一级缓存与二级缓存

mybatis缓存mybatis作为一个流行的持久化工具,缓存必然是缺少不了的组件。通过这篇文章,就让我们来了解一下mybatis的缓存。mybatis缓存类型说起mybatis的缓存,了解过的同学都知道,mybatis中可以有两种缓存类型:第一种,我们通常称为以及缓存,或者sqlSession级别的缓存,这种缓存是mybatis自带的,如果mapper中的配置都是默认的话,那么一级缓存也是默认开启的。第二种,就是非sqlSession级别的缓存了,我们通常称为二级缓存,mybatis中的二级缓

2021-05-18 20:30:28 860

原创 从interceptor看mybatis的执行过程

mybatis 四大对象1、Executor :SIMPLE、RESUE、BATCH2、StatementHandler :SIMPLE、PREPARED、CALLABLE3、ParameterHandler4、ResultSetHandlermybatis运行过程中,会按照需要进行上述四大对象的创建:其中,在创建SqlSession时会进行Executor对象的创建;在执行sql语句的时候会创建StatementHandler对象的创建;在创建StatementHandler对象

2021-05-16 10:41:09 543

原创 GIT学习笔记

GIT介绍GIT是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。GIT易于学习,占地面积小,性能极快。具有廉价的本地库,方便暂存区域和多个工作流分支等特性。其性能优于SVN、CVS、Perforce和ClearCase等版本控制工具。GIT为分布式版本控制工具,版本控制是在本地仓库完成的。本地版本控制流程:GIT除了本地仓库,还有代码托管中心,即基于网络服务器的远程代码仓库,一般我们简单称为远程库。局域网:GitLab互联网:Gitee、GithubGIT

2021-04-26 21:59:51 137

原创 JAVA操作mongoDB进行CRUD

java操作mongoDB的操作引入jar包<dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.12.7</version></dependency><dependency> <groupId>org.mo

2021-03-05 16:41:03 175

原创 JAVA中使用wkhtmltopdf进行html与pdf的转换

背景征信查询前置系统查询回客户征信报告后,返回html页面,希望通过接口自动将查回的html文档进行pdf文档的转换,并自动上传至业务系统中,提供前端业务人员进行查看。方案html与pdf的转换采用开源的wkhtmltopdf工具处理,此工具转换效果较号,唯一的缺点就是速度稍慢,可考虑使用多线程方式处理,提升并发效率。java程序中使用Runtime来调用操作系统中的命令的方式进行wkhtmltopdf的调用。代码/** * 对process中的InputStream和ErrorStr

2021-03-01 16:04:29 875

原创 JavaNIO手写聊天室

服务端package com.huwc.nio;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.*;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;public class

2021-02-20 16:44:16 249 1

原创 ogg logdump使用

在GGSCI中使用如下命令查看当前处理的队列文件和RBA号,例如:示例9-47:GGSCI (br-jl-accs-db1) 3> info REPYXA REPLICAT REPYXA Last Started 2011-01-08 19:48 Status RUNNING Checkpoint Lag 00:00:00 (updated 136:41:42 ago) Log Read Checkpoint File ./dirdat/p1000556 F

2021-02-19 21:29:40 325

原创 Java netty框架学习笔记

netty介绍1、netty是由Jboss提供的一个Java开源框架,现在为github上的独立项目。2、netty是一个异步的、基于事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络IO程序。3、netty主要针对在tcp协议下,面向clients端的高并发应用,或者peer-to-peer场景下的大量数据持续传输的应用。4、netty本质是一个NIO框架,适用于服务器通讯相关的多种应用场景。5、要透彻理解netty,需要先学习nio,这样才能阅读netty的源码。netty的应用

2021-02-18 17:16:59 328 1

原创 使用EasyExce对excel进行读取

EasyExcelEasyExcel是阿里开源的一个excel处理框架,以使用简单、节省内存著称,其能大大减少内存占用的原因是因为在解析Excel的时候,并没有把excel文件中所有的内容都一次性全部加载到内存中,而是从文件中一行一行进行读取,逐个解析。Java领域中,excel处理的比较有名的框架主要是poi和jxl,但这两个都存在内存占用非常大的问题,如果系统的并发量不大的话基本没有什么问题,但是如果并发使用量特别大的话,极容易造成OOM问题。EasyExcel读取文件采用一行一行读取,数据读取

2021-02-07 16:39:04 2174 4

原创 JavaIO流方式序列化反序列化对象案例

序列化反序列化对象@Testpublic void test_objectInputAndOutput() throws Exception { Person p = new Person(); p.setAge(100); p.setName("huwenchao"); p.setLevel(1); //字节数组输出流 ByteArrayOutputStream baos = new ByteArrayOutputStream(); //对象输出

2021-02-04 20:03:40 97

原创 JAVA反射详解(JAVA Reflection)

JAVA Reflection 定义反射是Java被视为动态语言的关键,反射机制允许程序在执行过程中借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。类加载完成后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的机构。这个对象就像一面镜子,透过这个镜子能看到类的结构,因此,被形象的称为**“反射”** 。优点:可以实现动态创建对象和编译,体现出很大的灵活性

2021-02-03 19:00:21 177

原创 JAVA泛型详解

一、泛型定义JAVA泛型(generics)是JAVA5中引入的一个新特性,泛型提供了编译时的类型安全监测机制,该机制允许我们在编译时检测到非法的类型数据结构。泛型的本质就是类型参数化,也就是所操作的数据类型被指定为一个参数。好处:类型安全消除了强制类型转换二、泛型类、接口泛型类定义语法class 类名称<泛型标识,泛型标识,....> { private 泛型标识 变量名; ......}常用的泛型标识:T、E、K、V实例:public clas

2021-02-02 18:30:37 298 2

原创 一次ogg的恢复实战记录

–获取当前scn号select current_scn from v$database;33467391237–备份数据expdp vbs5/vbs5 directory=DATA_BAK_DIR dumpfile=hwc_%U.dmpd parallel=8 FLASHBACK_SCN=33467391237 logfile=$SYSDATE.log schemas=vbs5 parfile=hwc.par–压缩文件gzip -f hwc_*.dmpd–数据恢复impdp vbs5/

2021-02-01 21:08:40 512

原创 oracle一种非常规的update方法

用一张表的数据更新另一张表的数据,一般的update方式:update tb_client_win_lost_report a set a.rolling_code_id = (select rolling_code_id from temp_role_id b where a.id= b.id)where exists (select 1 from temp_role_id c where a.id = b.id);这种方式需要对temp_role_id表扫描多次。优化后的update方式:u

2021-02-01 21:05:49 133

原创 JAVA内部类详解

静态内部类使用了static 进行修饰的内部类创建语法:new 外部类.内部类();内部类可以间接的访问到外部类的静态的私有属性;外部类也可以间接的访问到内部类的静态的私有属性;内部类和外部类的非静态属性的访问可以通过实例化的方式进行;总结:静态内部类与外部类的耦合程度非常低,基本与非内部类相同,区别只是在于外部类和静态内部类的私有成员的访问权限上。public class ClassOut { private String name = "huwenchao"; pu

2021-02-01 20:35:06 119

原创 SpringBoot+SpringBatch一个配置文件搞定ETL处理和任务调度

SpringBatch Configuration@Configuration@EnableBatchProcessingpublic class JobConfiguration { //注入创建任务对象的对象 @Autowired private JobBuilderFactory jobBuilderFactory ; //注入创建setp对象的对象 @Autowired private StepBuilderFactory stepBuilde

2021-01-30 23:41:38 1450 1

原创 JAVA设计模式之代理模式(Proxy)

代理模式一、代理模式作用业务逻辑上线使用后,如果还有一些另外的与原本逻辑无关的需求,并且尽量不要改动原本的调用方式,可以采用代理模式来进行原本业务功能的增强。二、代理模式实现要素1、要有代理类和被代理类2、代理类和被代理类实现相同的接口3、代理类要依赖被代理类,因为需要被代理类来实现业务逻辑三、静态代理下面,我们就用代码的方式来展现静态代理模式的使用方式:代码/** * 简单接口 */public interface Hello { public void sayH

2021-01-29 19:25:34 146 2

原创 JAVA设计模式之观察者模式(Observer)

观察者模式一种行为型模式,当对象间存在一对多的对应关系时,并且有需要将通知发送给所有的依赖对象,这时可以采用观察者模式。优点1、耦合度低2、有一套相应的触发机制缺点1、如果一个被观察者对象有很多的直接和间接的观察者的话,将所有的观察者都通知到会花费很多时间。2、如果在观察者和观察目标之间有循环依赖的话,观察目标会触发它们之间进行循环调用,可能导致系统崩溃。代码展示定义接口/** *观察者 */public interface Observer {//处理消息pu

2021-01-29 10:22:24 123

原创 JAVA设计模式之单例模式(Singleton)

单例模式(Singleton)在系统设计过程中,经常有一些数据或者功能上要求在JVM的生命周期过程中,只存在一份,那么这个时候需要将某个类设计成单例(singleton)的。比如,系统的数据字典通常为通过配置的方式存储在数据库中,系统运行过程中,如果需要读取数据字典,可以从数据库读取,但从数据库读取存在IO开销大的问题,并且数据字典运用比较广泛,所以读取的频率相对很高,数据库读取会直接降低系统的性能。这个时候,会考虑系统启动时,直接一次性读取所有的数据字典,将数据加载到对象中,在内存中存储,这时候,我

2021-01-28 16:55:12 172 2

原创 JAVA8新特性之Stream

Stream是什么Stream是一个数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。集合之于数据,Stream之于计算。注意点:Stream 自己不会存储元素Stream 不会改变源对象。相反,它们会返回一个持有结果的新StreamStream 操作是延迟执行的。这意味着它们会等到需要结果的时候才真正执行Stream 操作的三个步骤1、创建Stream:从一个数据源(数组、集合)中获取一个Stream创建Stream的几种方式:1、可以通过Collection 系列集

2021-01-28 10:58:36 156

原创 JAVA8新特性-Lambda表达式

一、Lambda表达式的基础语法Java8中引入了一个新的操作符 “->”,称为箭头操作符或者Lambda操作符。Lambda操作符将Lambda表达式拆分成了2部分:左侧:Lambda表达式的参数列表右侧:Lambda表达式中所需要执行的功能,即Lambda体语法格式:1、无参数,无返回值() -> System.out.println("hello,lambda");Runnable r = ()-> System.out.println("hello, lamb

2021-01-27 14:42:09 383 3

原创 一篇博客参透spring事务管理原理

spring事务管理原理分析我们都知道,IOC和AOP是组成spring的两大基石,而AOP面向切面编程过程中生成代理对象的操作,也是在IOC容器初始化中初始化bean的过程中,调用BeanPostProcessor中某一个processor来进行的。众所周知,AOP的典型应用就是日志的打印以及事务的统一管理,而spring中的事务管理分为编程式事务和声明式事务,但是不管那种实现方式,最终要实现的目标,就是spring框架对事务的统一管理,将事务和业务逻辑进行解耦。那么,spring要进行统一的事务管

2021-01-25 15:57:19 376

原创 JDBC批量处理效率实验

JDBC对数据库进行批量插入操作,使用不同的方式有很大差别,现将每种方式的测试做如下记录。测试方式:向数据库中的一张表中连续插入100000条记录使用jdbc+mysql数据库进行测试,项目中仅加载mysql驱动,MySQL数据库采用5.7的版本主测试类中仅实现业务逻辑,具体的时效监测采用JDK中InvocationHandler实例处理,再使用JDK的动态代理生成代理类mysql建表语句:create table batch_test( id BIGINT not null primar

2021-01-24 22:51:23 796

原创 事务传播属性和savePoint特性的思考

事务通常用于数据库领域,指对数据库进行读或者写的一组操作序列,要么都执行,要么都不执行,不允许只执行一部分的情况;事务的操作结果只有两种,一种是操作成功,一种是操作不成功恢复到操作之前的状态。

2021-01-23 17:07:56 252

原创 手写一个简易的数据库连接池

手写一个简易的数据库连接池话不多说,直接show the code:package com.huwc.dataSource;import javax.sql.DataSource;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import java.sql.Connection;/** * 对Connection对象的代理

2021-01-22 10:43:19 347

原创 Thread、Thread Local、ThreadLocalMap学习

Thread、ThreadLocal、ThreadLocalMap学习一、概念理解java中,为了在线程内部实现数据的传输共享,以及保证数据或者变量的线程隔离,引入了ThreadLocal类。ThreadLocal类中,有一个静态内部类ThreadLocalMap,这个map并没有继承HashMap,而是自己实现了map的功能以及map中的键值对单元。Threadjava中的线程类,每个对象代表一个线程。ThreadLocal按照名称翻译应为:本地线程,但实际上应该理解为本地线程变量

2021-01-21 11:02:56 486

原创 springboot学习记录(一)--探究springboot的启动流程

探究springboot的启动流程使用springboot搭建一个web框架非常方便,只需要简单的几步即可:一、在maven依赖中添加相应的parent依赖和web的starter依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version&

2021-01-20 11:05:42 373 4

原创 spring学习记录(六)

Spring中AOP相关整理:一、概念梳理连接点(JoinPoint)spring中将可以使用通知,也就是可以进行功能增强的地方,通俗点理解,基本上springIOC容器中的bean中的方法都可以视为连接点。切点(pointcut)切点是spring中定义的,用来对连接点进行筛选的工具,可以理解为连接点的筛选过滤器。通知(advice)对使用切面筛选过的连接点的功能进行增强的方法,可以理解为动态代理过程中原本功能以外的扩展功能。切面(aspect)通知和切点组成了切面。织入(weavi

2021-01-16 14:02:53 131

原创 mybatis学习记录(三)

在mybatis使用过程中,如果需要自定义mybatis使用的数据源的话,那么需要做如下操作:1、添加需要的数据库连接池的jar包,或者添加相关的maven配置;2、自定义DataSourceFactory类,继承UnpooledDataSourceFactory,通过带参构造方法实现DataSource的注入;3、看需要修改mybatis-config.xml配置文件,修改属性配置。<dependency> <groupId>com.alibaba</grou

2021-01-15 15:10:52 161

空空如也

空空如也

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

TA关注的人

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