自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 问答 (3)
  • 收藏
  • 关注

原创 SpringBoot 集成 Canal 基于 MySQL 做数据同步

SpringBoot 集成 Canal 基于 MySQL 做数据同步,支持单表、多表、全库增量同步

2024-01-18 16:34:41 1070 2

原创 netty源码系列---服务端启动

1、示例代码这是netty源码中官方提供的测试代码public final class EchoServer { static final boolean SSL = System.getProperty("ssl") != null; static final int PORT = Integer.parseInt(System.getProperty("port", "8007")); public static void main(String[] args) t

2021-06-21 11:32:36 313 1

翻译 netty划重点

1、示例代码:2、

2021-06-19 16:55:53 283

原创 Redis划重点

Redis专题redis底层数据结构由数组通过hash实现dictEntry就是一个key/value对象: key:指向redisObject对象 value:指向redisObject对象 next:连接落入同一会hash槽的对象 typedef struct redisObject { // 类型 unsigned type:4; // 编码 unsigned encoding:4; // 对象最后一次被访问的时间 uns.

2021-06-16 17:52:33 229

原创 MySql划重点

一、索引 索引数据结构 二叉树 红黑树 Hash表 BTree 存储引擎 MyISAM(非聚集) InnoDB(聚集) 索引最左前缀原理 Explain工具使用 索引最佳实践 1、全值匹配 2、最左前缀法则 3、不在索引列上做任何计算、函数、自动或者手动类型转换,会导致索引失效而转向全表扫描 4、存储引擎不能使用索引范围条件右边的列 5、尽量使用覆盖索引,减少select * 语句(虽然mysql会自动根据索引做一些优化) 6、mysql在使.

2021-06-16 17:50:06 137

原创 Jvm划重点

一、类加载机制1、类加载检查(根据指令参数是否在常量池能找到一个类的符号引用,并检查符号引用的类是否被加载、解析和初始化过) 类加载机制(双亲委派:沙箱安全机制、避免类重复加载) 1、加载 通过IO读取字节码文件,使用时才加载;加载到方法区,并在类的class对象存放类的元信息,同时在堆中生成Klass对象 2、验证 验证字节码是否正确 3、准备 给类的静态变量开辟内存并赋初值 4、解析 将符号引用替换为直接引用 5、初始化 对类的静态变量初始化制定的值,执行静态代码块.

2021-06-16 17:48:11 144

原创 Mybatis划重点

1、Mybaits整体体系图2、一级缓存和二级缓存mybatis提供了基本实现org.apache.ibatis.cache.impl.PerpetualCache,内部采用原始HashMap实现。MyBatis默认支持一级缓存,不需要任何的配置,默认情况下(一级缓存的有效范围可通过参数localCacheScope参数修改,取值为SESSION或者STATEMENT),在一个SqlSession的查询期间,只要没有发生commit/rollback或者调用close()方法,那么mybati.

2021-06-16 17:41:01 133

原创 Mybatis源码系列---执行sql语句

本章主要分三块:创建执行器、获取mapper代理对象、执行mapper代理对象创建执行器org.apache.ibatis.session.defaults.DefaultSqlSessionFactory#openSession

2021-06-16 17:04:41 1259

原创 Mybatis源码系列---获取sql语句

下面是测试方法public class Test { public static void main(String[] args) throws Exception { String resource = "mybatis.xml"; // 创建Configuration,用于从XML中构建SqlSessionFactory InputStream inputStream = Resources.getResourceAsStream(resource); Sql

2021-06-16 16:29:20 838

原创 spring整合Mybatis原理

通过@MapperScan导入了MapperScannerRegistrar类@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.TYPE)@Documented@Import(MapperScannerRegistrar.class)@Repeatable(MapperScans.class)public @interface MapperScan {}

2021-06-15 17:11:09 244

原创 spring扩展点整理

1、BeanDefinitionRegistryPostProcessor在Spring启动的过程中可以用来注册、移除、修改BeanDefinition

2021-06-15 12:51:05 220

原创 spring源码系列---spirngMvc

1、HandlerMapping中的url什么时候放进去的?以前刚开始工作的时候我记得这个源码流程大概就能说出来,网上资料也是一大堆,但是HandlerMapping中的url什么时候放jin'q

2021-06-09 10:27:38 212 2

原创 spring源码系列---推断构造方法

org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#createBeanInstance

2021-06-08 16:50:53 331

原创 spring源码系列---循坏依赖

上来就先加到二级缓存中

2021-06-08 00:40:34 157 6

原创 spring源码系列---依赖注入

org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#doCreateBean

2021-06-07 16:51:53 372 2

原创 spring源码系列---扫描与解析配置类

org.springframework.context.support.AbstractApplicationContext#refreshpublic void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { // 准备刷新的上下文 // Prepare this context for refreshing. prepar

2021-06-06 01:07:04 426 1

原创 spring源码系列---事务

@EnableTransactionManagement 声明式事物,在SpringBoot中不需要写这个注解,因为已经开启了启动配置spring-boot-autoconfigure-2.2.13.RELEASE.jar,在META-INF下的spring.factories文件中配置了开启自动配置的类EnableAutoConfiguration=\TransactionAutoConfiguration...

2021-06-04 18:05:40 448 1

原创 spring源码系列---AOP

@EnableAspectJAutoProxy 开启aop@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Import(AspectJAutoProxyRegistrar.class)public @interface EnableAspectJAutoProxy { /** * Indicate whether subclass-based (CGLIB) proxies are to b

2021-06-04 16:49:09 207 1

原创 spring源码系列---spring启动流程

测试类public static void main(String[] args) {// ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-config.xml"); AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationConte

2021-06-04 15:05:12 250 1

原创 tomcat源码系列---接收请求

org.apache.tomcat.util.net.NioEndpoint接收网络请求的处理类,其中包含几个重要的

2021-06-04 00:23:25 834 2

原创 tomcat源码系列---结果响应

org.apache.catalina.connector.CoyoteAdapter#servicepublic void service(org.apache.coyote.Request req, org.apache.coyote.Response res) throws Exception { Request request = (Request) req.getNote(ADAPTER_NOTES); Response respon

2021-06-02 17:36:39 589

原创 tomcat源码系列---请求处理

NioEndpoint.Acceptor#run serverSock.accept() 接收请求 NioEndpoint#setSocketOptions 处理Socket连接 NioEndpoint.Poller#register NioEndpoint.Poller#addEvent 添加到队列SynchronizedQueue<PollerEvent> NioEndpoint.Poller#run 轮询事件 NioEndpoint.Poller#proc.

2021-05-31 17:47:05 413

原创 一文彻底了解JVM

JVM内存结构类加载机制Java运行时编译源码(.java)成字节码,由jre运行。jre由java虚拟机实现。JVM分析字节码,后解释并执行。1、全盘负责委托机制当一个ClassLoader加载一个类的时候,除非显示的使用另一个ClassLoader,该类所依赖和引用的类也由这个ClassLoader载入。2、双亲委派机制指先委托父类加载器寻找目标类,在找不到的...

2020-04-19 00:22:14 658

原创 Java中的位运算

public static void main(String[] args) { int a = 5; int b = 3;// 00000000 00000000 00000000 00000101 ~>5// 00000000 00000000 00000000 00000011 ~>3// 00000000 00000000 00000...

2020-01-15 16:03:56 156

原创 MyBatis查询结果自动过滤空字段问题

解决方式一:在yml添加call-setters-on-nulls: true 但是在springboot版本2.0.3.RELEASE不生效# mybatis 配置mybatis: type-aliases-package: org.safety.manager.entity mapper-locations: classpath:mapper/*.xml config...

2020-01-15 11:12:44 5098 1

原创 Java 下载队列并对文件进行MD5校验,可获取文件名可分不同时间段进行下载

spring定时器,定时走下载队列进行文件上传下载同时对文件进行MD5校验

2018-04-03 11:45:52 872

原创 Java 根据下载链接获取文件名

public String getFileName(String urlStr){ String fileName = null; try { URL url = new URL(urlStr); URLConnection uc = url.openConnection(); fileName = uc.getHeaderField("Conte

2018-04-03 11:39:58 8048 1

原创 Java 解析Xml(基本满足你所有的取值情况)

package cn.com.ebidding.web.tool;import java.util.List;import org.dom4j.*;public class DocumentParse { public static void main(String[] args) { String xml = "" + "C4201000016" +

2018-04-03 11:36:50 2532 1

翻译 Java 生成MD5摘要

package cn.com.ebidding.web.finance.ws;import java.io.File;import java.io.FileInputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.security.Messag

2018-04-03 11:14:33 387

原创 Java Exception转String

public static String getLogInfo(Exception e){    StringWriter sw = new StringWriter(); e.printStackTrace(new PrintWriter(sw, true));     return sw.toString();}

2018-04-03 11:08:16 902

原创 base64转文件

public static String decoderBase64File(String base64Code, String fileName) throws Exception, TradingException { if(fileName == null &amp;&amp; "".equals(fileName)) throw new TradingException("...

2018-04-03 11:02:00 519

转载 Java对象跟Map的多种转换方式

此文档来源网路:https://www.cnblogs.com/XuYiHe/p/6871799.html/** * 使用org.apache.commons.beanutils进行转换 */ class A { public static Object mapToObject(Map&lt;String, Object&gt; map, Class&lt;?...

2018-03-14 14:38:56 501

原创 oracle 表解锁

单表解锁:SELECT lpad(' ',decode(l.xidusn ,0,3,0))||l.oracle_username User_name,o.owner,o.object_name,o.object_type,s.sid,s.serial#FROM v$locked_object l,dba_objects o,v$session sWHERE l.object_id=o.

2017-12-15 16:44:34 281

转载 PDF 跟 Base64 相互转换

package utils;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.

2017-12-15 16:06:58 14995 1

空空如也

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

TA关注的人

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