- 博客(159)
- 资源 (61)
- 收藏
- 关注
原创 TF-IDF算法介绍,简单模拟,以及在图数据中应用
一、百度百科关于TF-IDF的算法介绍https://baike.baidu.com/item/tf-idf/8816134?fr=aladdin二、简单模拟既然是简单模拟,我们就用人们最常用的一种工具MySQL去模拟一下这个算法可以实现的效果2.1、创建表以及数据article_keywords.sqlCREATE TABLE `article_keywords` ( `id` int NOT NULL AUTO_INCREMENT, `article`...
2021-06-17 22:52:03
1362
2
原创 MyBatis插件原理
目录插件的使用拦截器介绍及配置源码分析总结MyBatis提供了一种插件(plugin)的功能,虽然叫做插件,但其实这是拦截器功能。那么拦截器拦截MyBatis中的哪些内容呢?我们进入官网看一看:MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:Executor (update, query, flushStatements, commit, rollback, getTransaction, clo
2021-06-07 22:13:34
498
原创 Mybatis-设计模式总结
目录1、Builder模式2、工厂模式3、单例模式4、代理模式5、组合模式6、模板方法模式7、适配器模式8、装饰者模式9、迭代器模式虽然我们都知道有26个设计模式,但是大多停留在概念层面,真实开发中很少遇到,Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式。Mybatis至少遇到了以下的设计模式的使用:Builder模式,例如SqlSessionFactoryBuilder、XMLConfigBuilde
2021-06-07 22:07:14
231
原创 MyBatis解析动态SQL原理分析
废话不多说,直接进入文章。我们在使用mybatis的时候,会在xml中编写sql语句。比如这段动态sql代码:<update id="update" parameterType="org.format.dynamicproxy.mybatis.bean.User"> UPDATE users <trim prefix="SET" prefixOverrides=","> <if test="name != null and n...
2021-06-07 21:54:37
1066
原创 MyBatis的二级缓存讲解
目录1、二级缓存的定义2、二级缓存扩展性需求3、二级缓存的结构4、SynchronizedCache线程同步缓存区5、LoggingCache统计命中率以及打印日志6、ScheduledCache过期清理缓存区7、LruCache(最近最少使用)防溢出缓存区8、FifoCache(先进先出)防溢出缓存区9、二级缓存的使用(命中条件)10、二级缓存的配置11、二级缓存为什么要提交之后才能命中缓存?12、二级缓存执行流程1、二级缓存的定义二级缓存也称作是应
2021-06-07 21:46:02
591
原创 三:Spring整合Mybatis原理
目录前言Mybatis集成Spring:1.Mybatis集成Spring的适配器源码下载:2.Spring集成MyBatis1.SqlSessionFactoryBean2.Spring是怎么管理Mapper接口的动态代理的前言Spring整合MyBatis的原理也是一道非常高频的面试题, 下面我们一起来记录一下其中的原理, 主要是Spring是怎么管理MyBatis中的Mapper动态代理的。Mybatis集成Spring:1.Mybatis集成Spring.
2021-06-07 21:38:51
501
1
原创 二:MyBatis执行Sql的流程分析
目录openSession的过程:获取Mapper的流程Mapper方法的执行流程简单总结重要类调试主要关注点本章着重介绍MyBatis执行Sql的流程,关于在执行过程中缓存、动态SQl生成等细节不在本章中体现还是以之前的查询作为列子:public class App { public static void main(String[] args) { String resource = "mybatis-config.xml";
2021-06-07 21:25:44
444
1
原创 一:MyBatis解析全局配置文件
传统JDBC和Mybatis相比的弊病传统JDBC@Testpublic void test() throws SQLException { Connection conn=null; PreparedStatement pstmt=null; try { // 1.加载驱动 Class.forName("com.mysql.jdbc.Driver"); // 2.创建连接 conn= DriverMan
2021-06-07 21:11:06
319
3
原创 logstash.conf示例
input { file { path => "/Users/yiruan/dev/elk7/logstash-7.0.1/bin/movies.csv" start_position => "beginning" sincedb_path => "/dev/null" }}filter { csv { separator => "," columns => ["id", "content", "genr.
2021-06-07 16:29:11
318
原创 MyBatis面试题
目录MyBatis简介MyBatis是什么?ORM是什么为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?传统JDBC开发存在的问题JDBC编程有哪些不足之处,MyBatis是如何解决这些问题的?Mybatis优缺点MyBatis框架适用场景Hibernate 和 MyBatis 的区别MyBatis的解析和运行原理MyBatis编程步骤是什么样的?请说说MyBatis的工作原理MyBatis的功能架构是怎样的MyBatis的框架架
2021-06-01 23:41:24
1029
原创 八:SSM框架整合
目录1、导入pom文件2、编写各个框架的配置文件在老期的项目中,一般都是使用ssm项目做开发的,虽然现在的主流开发是springboot来做开发,但是ssm的基本整合还是需要掌握的。整合SSM框架要做哪些事情:SpringMVC: pomweb.xml 前端调度器servlet 编码过滤器filter 支持rest的过滤器 springmvc.xml 扫描controller包 添加 视图解析器 静态资源解析 添加控制器类...Spring:we
2021-06-01 23:35:08
203
原创 七:MyBatis逆向工程&分页插件
目录1、分页插件Mybatis插件典型适用场景分页功能公共字段统一赋值性能监控其它实现思考:自定义分页插件分页插件使用代理和拦截是怎么实现的?PageHelper 原理2、MyBatis逆向工程1、分页插件MyBatis 通过提供插件机制,让我们可以根据自己的需要去增强MyBatis 的功能。需要注意的是,如果没有完全理解MyBatis 的运行原理和插件的工作方式,最好不要使用插件,因为它会改变系底层的工作逻辑,给系统带来很大的影响。MyBatis
2021-06-01 23:31:30
733
2
原创 六:MyBatis基于XML的详细使用——缓存
目录1、介绍2、一级缓存的使用3、二级缓存1、缓存的使用2、缓存的属性3、二级缓存的作用范围:4、整合第三方缓存1.整合redis2.整合ehcache1、介绍MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制。 为了使它更加强大而且易于配置,我们对 MyBatis 3 中的缓存实现进行了许多改进。默认情况下,只启用了本地的会话缓存,它仅仅对一个会话中的数据进行缓存。 要启用全局的二级缓存,只需要在你的 SQL 映射文件中添加一行:
2021-06-01 23:10:51
250
1
原创 五:MyBatis基于XML的详细使用——动态sql
目录1、动态sql1、if1.1 where1.2 trim2、foreach3、choose、when、otherwise4、set1、动态sql动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。使用动态 SQL 并非一件易事,但借助可用于任何 SQL 映射语
2021-06-01 22:51:39
1890
原创 四:MyBatis基于XML的详细使用——高级结果映射
目录1、联合查询2、嵌套结果2.1多对一2.2一对多3、嵌套查询3.1、多对一3.2、一对多4、延迟查询5、总结1.一对一2.一对多3.多对多1、联合查询emp.javaimport java.time.LocalDate;public class Emp { private Integer id; private String username; private LocalDate createDate;
2021-06-01 22:30:44
573
1
原创 三:MyBatis基于XML的详细使用-参数、返回结果处理
目录1、参数的取值方式2、select的参数传递3、处理集合返回结果4、自定义结果集---resultMap1、参数的取值方式在xml文件中编写sql语句的时候有两种取值的方式,分别是#{}和${},下面来看一下他们之间的区别: <!--获取参数的方式: 1.#{} ==> jdbc String sql=" SELECT id,user_name FROM EMP WHERE id=?" 1.会经过JDBC当中PreparedStateme
2021-06-01 22:16:11
1647
原创 二:MyBatis的配置文件详解
目录1、日志2、全局配置文件详解3、Mybatis SQL映射文件详解1、insert、update、delete元素1、日志日志演变:1.4之前 没有任何的日志框架System.out.println("")小明将日志按照级别输入,按照包或者类来输入。 将日志输入到文件中,能不能按照日期或者文件大小来进行归档,记录日志同时发送邮件给开发人员 自定义格式,让日志更美观 性能log4j 开源 所有的开发人员一起来维护这个框架。 apache 收入。jdk J
2021-05-31 21:36:32
228
原创 一:Mybatis的介绍和基本使用
目录1、数据库操作框架的历程1.1 JDBC1.2 DBUtils1.3 Hibernate1.4 JDBCTemplate2、什么是Mybatis?3、快速搭建Mybatis项目1、数据库操作框架的历程1.1 JDBCJDBC(Java Data Base Connection,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC提供了一种基准,据此可以构建更高级的工具和
2021-05-31 21:29:15
379
3
原创 六:SpringMvc笔记
目录1、MVC模型 的由来1.1、Model1 模型1.2 Model2 模型2 基于 MVC 模型框架之:SpringMVC2.1 SpringMVC 的执行过程分析2.2 SpringMVC 中三大组件详解2.2.1 处理器映射器2.2.2 处理器适配器2.2.3 视图解析器2.2.4 不需要视图解析器的场景分析2.2.5 请求参数封装的实现原理2.2.6 常用注解的使用场景及实现思路分析:2.2.7 拦截器的 AOP 思想2.2.8 自定义拦截器
2021-05-31 21:10:51
163
1
原创 五:JAVA日志体系
目录引言正文日志框架发展史日志实战spring4和spring5日志中的不同1.Spring4日志体系2.Spring5日志体系引言还在为弄不清commons-logging.jar、log4j.jar、sl4j-api.jar等日志框架之间复杂的关系而感到烦恼吗?还在为如何统一系统的日志输出而感到不知所措嘛?您是否依然存在这样的烦恼。比如,要更改spring的日志输出为log4j 2,却不知该引哪些jar包,只知道去百度一下所谓的博客,照着人家复制,却无法弄懂其
2021-05-31 20:52:05
242
原创 Nginx修改配置文件后热部署加载配置文件
线上环境中经常会程序部署发生变化需要修改Nginx的映射。那么我们就需要用到热部署,在不影响用户请求的情况下更新版本。具体的步骤如下:1、首先查到你的nginx位置 whereis nginx[centos@ip-10-20-13-130 /]$ whereis nginxnginx: /usr/local/nginx2、进入nginx目录 cd /usr/local/nginx/sbin[centos@ip-10-20-13-130 nginx]$ cd /usr/local
2021-05-31 17:45:54
1509
原创 四:Spring声明式事务
目录1、Spring JdbcTemplate2、声明式事务1、设置隔离级别(isolation)2、事务的传播特性3、基于xml的事务配置相关代码Demo下载:tuling_proxy.rar什么是事务把一组业务当成一个业务来做;要么都成功,要么都失败,保证业务操作完整性的一种数据库机制。1、Spring JdbcTemplate在spring中为了更加方便的操作JDBC,在JDBC的基础之上定义了一个抽象层,此设计的目的是为不同类型的JDBC操作提供模板.
2021-05-27 23:00:29
388
原创 三:Spring-AOP源码
目录AOP, AspectJ, Spring AOP 前世今生Spring 1.2 中的配置Spring 2.0@AspectJ配置Spring 2.0 schema-based 配置AspectJ编译方式实现AOP:spring aop源码解析一、切面类的解析二、创建代理三、代理类的调用相关demo代码下载:AOP.rar-Spring-AOP源码DemoAOP, AspectJ, Spring AOP 前世今生我们先来把它们的概念和关系说说清楚,我们学..
2021-05-27 22:39:17
264
原创 Spring事件监听机制
目录1. 使用Spring 事件事件Spring内置事件自定义事件事件监听器事件监听器-基于接口事件监听器-基于注解事件发布操作2. Spring事件原理1 事件广播器的初始化2 注册事件监听器3 发布事件4 Spring默认的事件广播器SimpleApplicationEventMulticaster1. 使用Spring 事件Spring事件体系包括三个组件:事件,事件监听器,事件广播器。事件Spring内置事件内置事件中由系.
2021-05-27 22:06:27
688
1
原创 Spring 是如何解决循环依赖的
目录1.什么是循环依赖?2.通过手写代码助你理解Spring循环依赖:为什么需要二级缓存?为什么需要三级缓存?为什么Spring不能解决构造器的循环依赖?为什么多例Bean不能解决循环依赖?循环依赖可以关闭吗3 源码:如何解决循环依赖?3.1 哪三级缓存?3.2 创建原始 bean 对象3.3暴露早期引用3.4 解析依赖3.5 获取早期引用4 如何进行拓展?4.1 何时进行拓展?(进行bean的实例化时)4.2 getEarlyBeanR...
2021-05-26 22:34:29
901
2
原创 二:Spring-IOC源码
目录前言Spring IoC容器的加载过程1.实例化化容器:AnnotationConfigApplicationContext :2.实例化工厂:DefaultListableBeanFactory3.实例化建BeanDefinition读取器: AnnotatedBeanDefinitionReader:4.创建BeanDefinition扫描器:ClassPathBeanDefinitionScanner5.注册配置类为BeanDefinition: register(an
2021-05-26 22:15:18
1272
3
原创 Spring源码分析之 常见底层核心注解
目录一:Spring框架功能整体介绍1: Spring Core Container:2: Spring Data Access/Integration3: Spring Web Web 模块:4: Spring Aop5:Test6:Spring 容器继承图:7:控制反转和依赖注入二:Spring IOC 容器底层注解使用2.1 xml配置文件的形式 VS 配置类的形式2.2在配置类上写@CompentScan注解来进行包扫描2.3配置Bean的作...
2021-05-26 21:36:16
254
3
原创 Spring核心API介绍
Spring核心API介绍BeanFactoryorg.springframework.beans.factoryBeanFactory是用于访问Spring Bean容器的根接口,典型的工厂模式,用于生产Bean的一个Bean工厂,其提供了生产Bean所需的最基本规则。BeanFactory的所有方法:BeanDefinition功能BeanDefinition是bean在spring中的描述,有了BeanDefinition我们就可以创建Bean,Be...
2021-05-26 20:42:30
1700
2
转载 Spring 设计模式总结
目录1.简单工厂2.工厂方法3.单例模式4.适配器模式5.装饰器模式6.代理模式7.观察者模式8.策略模式9.模版方法模式10.责任链模式1.简单工厂实现方式:BeanFactory。Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。实质:由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。实现原理:bean容器的启
2021-05-26 20:16:13
143
原创 一:spring源码介绍和编译
目录Spring体系架构(基于4.x)1、Core Container(核心容器)2、AOP and Instrumentation3、Messaging4、Data Access/Integration5、Web6、TestSpring最新源码编译准备工作环境准备源码下载构建工具准备:编译工作编译compileTestJava模块导入项目到idea中添加测试模块代码:编写代码测试ioc功能spring中文文档地址Spring体系架
2021-05-26 20:15:47
849
原创 十三:无锁并发框架-Disruptor
目录认识Disruptor核心设计原理数据结构概念与作用等待策略BlockingWaitStrategySleepingWaitStrategyYieldingWaitStrategyBusySpinWaitStrategyPhasedBackoffWaitStrategy写数据框架的使用生产消费模型的应用认识DisruptorDisruptor是一个开源框架,研发的初衷是为了解决高并发下列队锁的问题,最早由LMAX(一种新型零售金融交易平台)提出
2021-05-26 20:15:32
587
原创 实现一个MySQL自定义函数:求两个JSONArray的并集
目录准备表及数据创建自定义函数删除自定义函数测试自定义函数函数中用到的其他的MySQL支持的JSON函数准备表及数据建表以及添加测试数据/* Navicat Premium Data Transfer Source Server : DataLab测试库 Source Server Type : MySQL Source Server Version : 80015 Source Host : ****** Sourc
2021-05-26 16:34:26
638
1
原创 十二:并发编程之Future&ForkJoin框架原理分析
目录任务性质类型CPU密集型(CPU-bound)IO密集型(I/O bound)CPU密集型 vs IO密集型一、什么是 Fork/Join 框架?二、工作窃取算法三、fork/join的使用四、fork/join框架原理常量介绍ForkJoinPool 中的相关常量和实例字段:ForkJoinPool 的内部状态都是通过一个64位的 long 型 变量ctl来存储,它由四个16位的子域组成:1、异常处理2、ForkJoinPool构造函数3、For
2021-05-25 21:42:28
271
原创 十一:并发编程之定时任务&定时线程池
目录ScheduledThreadPoolExecutorSchduledFutureTask工作线程的执行过程:SchduledFutureTask之run方法实现reExecutePeriodic方法线程池任务的提交任务提交方法:DelayedWorkQueue为什么要使用DelayedWorkQueue呢?DelayedWorkQueue属性offer方法任务排序sift方法take方法poll 方法finishPoll方法siftDow
2021-05-25 21:25:28
1226
转载 十:并发编程之Executor线程池原理与源码解读
目录线程协程线程池线程池介绍线程的实现方式Runnable,Thread,CallableExecutor框架线程池重点属性ctl相关方法线程池的具体实现线程池的执行流程ThreadPoolExecutor线程池的创建任务提交参数解释线程池监控线程池原理源码分析execute方法addWorker方法Worker类runWorker方法getTask方法processWorkerExit方法线程线程是调度
2021-05-25 21:24:18
175
原创 泊松分布
一、泊松分布日常生活中,大量事件是有固定频率的。某医院平均每小时出生3个婴儿 某公司平均每10分钟接到1个电话 某超市平均每天销售4包xx牌奶粉 某网站平均每分钟有2次访问它们的特点就是,我们可以预估这些事件的总数,但是没法知道具体的发生时间。已知平均每小时出生3个婴儿,请问下一个小时,会出生几个?有可能一下子出生6个,也有可能一个都不出生。这是我们没法知道的。泊松分布就是描述某段时间内,事件具体的发生概率。上面就是泊松分布的公式。等号的左边,P 表示概率,N表示某种函数
2021-05-25 21:24:08
35598
1
原创 九:Collections之Map&List&Set详解
目录HashMap数据结构源码原理分析重要成员变量内部的执行机制源码Jdk7-扩容死锁分析单线程扩容多线程扩容Jdk8-扩容ConcurrentHashMap数据结构并发安全控制源码原理分析重要成员变量协助扩容helpTransfer扩容transfer总结CopyOnWrite机制源码原理并发编程脑图:https://www.processon.com/view/link/5d81dec7e4b04c14c4e7aac8H
2021-05-25 21:23:48
366
原创 Collections&Map&Set&List
HashMap1.7-hashtable = 数组(基础) + 链表(>=)1.8 = 数组 + 链表 + 红黑树HashMap->数组的大小new HashMap();如果不写构造参数,默认大小16如果说:写了初始容量:11 ?hashmap的容量就是11?hashmap的get,put操作时间复杂度O(1)key.hashCode = 不确定 - 有符号的整型值key.hashCode % 16 = table.lenth = [0-15] = index = 3;a.
2021-05-25 21:23:35
103
转载 Mysql中的JSON函数使用教程
新版 Mysql 中加入了对 JSON Document 的支持,可以创建 JSON 类型的字段,并有一套函数支持对JSON的查询、修改等操作,下面就实际体验一下前言JSON是一种轻量级的数据交换格式,采用了独立于语言的文本格式,类似XML,但是比XML简单,易读并且易编写。对机器来说易于解析和生成,并且会减少网络带宽的传输。JSON的格式非常简单:名称/键值。之前MySQL版本里面要实现这样的存储,要么用VARCHAR要么用TEXT大文本。 MySQL5.7发布后,专门设计了JSON数据类.
2021-05-25 21:18:07
538
apache-shardingsphere-4.1.1-sharding-proxy-bin-test.zip
2021-04-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人