- 博客(165)
- 资源 (6)
- 问答 (2)
- 收藏
- 关注

原创 我的GitHub:https://github.com/yuyufeng1994
一些demo会放在我的GitHub仓库里,欢迎交流地址:https://github.com/yuyufeng1994
2019-04-25 14:19:17
5040
2

原创 Spring源码阅读——bean的加载过程解析
前言在上一节中,我们已经了解过Spring对bean从XML中提取,并且以BeanDefinition类型解析注册到Spring的DefaultListableBeanFactory中取了,那么,接下来就应该来看下我们在Spring中获取一个实例过程中,bean是如何加载成为我们需要的对象的了。通过getBean方法了解bean的加载在Spring中我们是通过getBean方法去获取,...
2018-07-09 16:42:52
596

原创 MyBatis源码阅读——通过debug解析MyBatis运行流程
最近在阅读MyBatis框架的源码。发现它其实是一个非常值得阅读的框架。它灵活得运用了常见的设计模式去设计。值得我们去学习。我还是比较喜欢以debug阅读MyBatis的源码。
2018-06-07 13:22:08
16546
3

原创 Spring源码阅读——通过debug源码解析SpringMVC的流程
准备简单搭建一个Spring MVC的项目,并写一个Controller,运行一个基本的请求转发DispatcherServlet类图分析 由此图我们可以分析的到,DispatcherServlet继承的FrameworkServlet实现了Spring中的ApplicationContextAware接口,然后又间接继承了HttpServlet。所以实质上是一个Servlet,...
2018-04-10 16:40:40
4463
1

原创 知识库管理系统——项目
分享下自己大学时做的项目《知识库管理系统》 https://github.com/yuyufeng1994/KnowledgeLibrary功能简介文件集中上传: 系统支持单文件上传以及批量上传,系统支持zip、rar格式的压缩包导入。 亮点创新 多格式文件在线预览 用户可以对所有公共文件进行浏览,支持office,pdf格式以及* 常见图片格式,音频格式,音频播...
2018-03-28 08:34:12
42077
81

原创 微信小程序实战—实现城市列表的选择
微信小程序实战—实现城市列表的选择实现效果预览 实现功能简介城市的选择按中文/拼音/首字母条件搜索按首字字母快速定位到城市位置目录结构主要代码app.jsApp({ globalData: { trainBeginCity: '杭州', trainEndCity: '北京' }})app.json{
2018-01-19 17:05:52
25545
1

原创 搜索学习基础--基本概念的简单阐述
关于查询查询数据分为精确查找和模糊查找 精确查找:对于精确查找,我们都非常熟悉,就是这个值必须等于这个条件。比如我们常用的数据库查询中: select * from user_info where user_id = ? 模糊查找:对于模糊查找,我们需要查找的范围就是结果中的某个值必须包含这个条件。平时我们在一个文档中查找某个 单词,这就是模糊查找。 对于普通的查找,
2017-11-09 20:13:15
1064

原创 编写自己rpc框架——Java RPC的实现
my-rpc 了解dubbo的一些原理后,想尝试自己编写rpc,加深了解。个人对rpc原理的见解 rpc是一种远程过程调用协议。rpc主要功能:异构分布式项目之间的通信,使消费者只需要知道接口,远程调用方法就像调用本地方法一样。 要使得消费层只通过接口调用远程实现方法,那么其之间的传输数据肯定是:类、方法、参数、返回值,以及一些其它传输的信息。 之间涉及到通信,肯定要发布服务供
2017-08-19 22:48:33
2825

原创 基于redis的分布式锁的实现
之前一直对分布式锁有所思考。一直觉得现在高性能的redis是个不错的选择;前文:关于分布式锁的思考 今天也尝试着写了一个基于redis的分布式锁工具LockUtil.java package yyf.Jedis.toolsByRedis;import java.util.concurrent.atomic.AtomicInteger;import redis.cl...
2017-02-07 10:51:09
4652
1
原创 使用eclipse建立webservice服务和客户端
Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间,
2020-04-01 15:38:13
53669
18
原创 Maven设置镜像为本地文件
<mirror> <id>central</id> <mirrorOf>*</mirrorOf> <name>central</name> <url>file://d:\\repo\maven</url></mirror>
2020-01-13 17:56:21
2739
转载 CentOS 6.5 Linux 安装 openoffice
目录资源准备:Apache_OpenOffice_4.1.4_Linux_x86-64_install-rpm_zh-CN.tar.gz编译安装:本人资源包放在 /opt/moudles 中, 解压后放在 /opt/softwares 中解压 openoffice 包[root@localhost moudles]# tar -zxvf Apache_OpenOffice_4.1.4_...
2019-08-26 13:54:34
506
原创 解决github的pageHelper中查询出来的分页对象PageInfo<PO>优雅转化PageInfo<DTO>的问题
在我们使用github的pageHelper的时候,我们查出来的是PO对象,我们往往在上层需要DTO或VO回想,这里我写了一个工具类来优雅的转化PageInfo类型工具类 PageInfoUtil.javaimport com.github.pagehelper.Page;import com.github.pagehelper.PageInfo;import org.springfr...
2019-07-22 10:59:54
11973
4
转载 SpringMVC重定向导致的内存泄漏分析
SpringMVC重定向频繁会导致的内存泄漏,我们的产品也碰到的这样的问题。网上也有类似解决方案:原文链接@RequestMapping(method = RequestMethod.GET)public String test(String redirectUrl){return “redirect:”+redirectUrl;}项目内一个热点接口,使用了如上代码做代码的重定向操作,...
2019-07-08 15:27:13
1074
原创 【流媒体服务】使用nginx来搭建rtmp服务
资源准备在windows平台上搭建【nginx-rtmp-module】 https://github.com/arut/nginx-rtmp-module/releases/tag/v1.2.1【nginx-Gryphon】 http://nginx-win.ecsds.eu/download/nginx配置文件worker_processes 2;events { ...
2019-06-18 10:52:10
520
原创 MyBatis源码阅读——MyBatis插件PageHelper的实现过程
前言在之前的文章 MyBatis源码阅读——MyBatis插件原理中我们已经知道MyBatis的插件是如何运行的,这篇文章中,我们将去了解MyBatis常用插件com.github.pagehelper.PageHelper的实现过程示例代码https://github.com/yuyufeng1994/learn-mybatis/blob/master/mybatis-demo/src/m...
2019-05-24 11:38:33
511
原创 KNN算法的入门demo
数据准备代码package top.yuyufeng.learn;import top.yuyufeng.learn.model.MyData;import top.yuyufeng.learn.utils.ExcelReader;import java.util.HashMap;import java.util.LinkedList;import java.util.List...
2019-04-23 16:06:18
450
转载 JVM 优化
Tomcat 启动命令行中的优化参数,就是 JVM 的优化 。Tomcat 首先跑在 JVM 之上的,因为它的启动其实也只是一个 java 命令行,首先我们需要对这个 JAVA 的启动命令行进行调优。不管是 YGC 还是 Full GC,GC 过程中都会对导致程序运行中中断,正确的选择不同的 GC 策略,调整 JVM、GC 的参数,可以极大的减少由于 GC 工作,而导致的程序运行中断方面的问题,进...
2019-04-18 14:31:30
283
原创 【Java多线程】等待通知机制(二)等待通知机制的使用
synchronized可以将如何一个Object对象作为同步对象来看待,Java为每个Object都实现了wait和notify()方法。notify()方法可以使调用该方法唤醒等待队列中等待同一资源的“一个线程”,并使该线程退出等待队列,进入可运行状态。仅通知一个。notifyAll()方法可以通知共享资源的“全部线程”。现在,来改造一个上一篇文章中的代码。MyList.classpubl...
2019-03-18 15:06:24
325
原创 我为什么要写博客?谈谈一些关于自己学习的想法
不知不觉,已经踏入程序员这个行业已经有2年了。我大学就读于软件工程专业,算是专业非常对口了,虽然大学是一所普通的一本,但是也不乏有一起在实验室学习的同学一起学习编程。毕业之后,也都会在工作之余去学习巩固一些知识。只是,相比于大学时期,现在的我们对算法、操作系统等基础的东西都不会花太多时间了,更多的注重在实践代码中。我不知道这样做是否是正确的。工作之后,我也给自己定下了一个计划,争取每个月都能抽出...
2019-03-18 11:15:37
779
1
原创 【Java多线程】等待通知机制(一)为什么要使用等待通知机制
先看以下代码:MyList.classpublic class MyList { private List list = new ArrayList(); public void add(){ list.add("uuf"); } public int size(){ return list.size(); }}Th...
2019-02-26 16:48:59
457
原创 【Java多线程】方法yield的使用
说明yield()方法作用是放弃当前CPU资源,让其他任务去占用CPU执行时间。但放弃的时间不确定。代码示例package top.yuyufeng.demo.thread;/** * @author yuyufeng * @date 2019/2/22. */public class DemoThread { public static void main(Strin...
2019-02-25 14:51:24
1598
原创 【Java多线程】方法join的使用
场景描述主线程启动子线程,如果子线程中要进行大量的耗时运算,主线程会早于子线程结束,这时候主线程如果想等待子线程完成之后再运行,就需要join()方法代码示例package top.yuyufeng.demo.thread;/** * @author yuyufeng * @date 2019/2/22. */public class Demo2Join { public...
2019-02-22 15:59:26
1363
原创 【Java多线程】线程停止
package top.yuyufeng.demo.thread;/** * @author yuyufeng * @date 2019/2/21. */public class Demo1Threadinterrupted { public static void main(String[] args) { try { MyThread...
2019-02-21 15:24:30
289
原创 Dubbo负载均衡调优策略
前言虽然目前Spring Cloud全家桶非常的火热,Dubbo依然在很多公司有着举足轻重的地位。我自己也经历了很久Dubbo的项目,今天突然想整理下Dubbo的优化策略。曾经有一段时间,我们项目底层的提供层集群经常发生卡顿,而且,一旦一个服务器开始卡顿,整个系统就会受到影响,甚至整个服务宕机。虽然重启所有集群服务器可以解决问题,但是,这样总归是治标不治本的。Dubbo的负载策略 loadba...
2019-01-31 11:13:33
766
原创 Java虚拟机学习——内存分配策略
如何判断对象已死引用计数法在Java虚拟机中不经常出现 弊端:互相引用问题,导致计数都不为0,无法通知GC收集器去回收可达性分析没有到任何引用链相连,则被判定是可回收的对象对象优先在Eden分配大多数情况下,对象在新生代Eden区中分配。 当Eden区没有足够空间进行分配时,虚拟机将发起一次Minor GC。Minor GC和Full GC新生代GC(Minor GC):指发生在新...
2019-01-24 10:52:08
267
原创 Vue入门——环境的搭建 vue-cli
安装vue-clicnpm install -g @vue/cli创建vue项目 vue create hello-world打开项目,运行工程 cd hello-world npm run serve (cnpm run serve)打开网页
2019-01-22 10:59:12
299
原创 Windows上安装nodejs
下载http://nodejs.cn/download/npmhttps://npm.taobao.org/$ npm install -g cnpm --registry=https://registry.npm.taobao.org
2019-01-21 14:51:50
261
原创 【Spring Cloud】Spring Cloud Config 配置统一管理(二) 配置文件的热更新
说明在之前的配置同一管理中,我们每次修改配置文件之后,都需要重新启动客户端才会去拉取最新的配置文件,现在,我们需要去实现配置文件的热更新。配置第一步:引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-star...
2019-01-10 11:27:09
1089
原创 【Spring Cloud】spring-boot-starter-actuator 健康监控
说明Spring Boot的actuator(健康监控)功能提供了很多监控所需的接口,可以对应用系统进行配置查看、相关功能统计等。引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actu...
2019-01-10 11:05:08
1322
原创 反射中Class.forName()和ClassLoader.loadClass()的区别
Java类的加载过程装载:通过累的全限定名获取二进制字节流,将二进制字节流转换成方法区中的运行时数据结构,在内存中生成Java.lang.class对象;链接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的;校验:检查导入类或接口的二进制数据的正确性;(文件格式验证,元数据验证,字节码验证,符号引用验证)准备:给类的静态变量分配并初始化存储空间;解析:将常量池中的符号引用转成...
2019-01-07 09:53:59
233
原创 [ELK日志分析平台]kibana的搭建
前提Elasticsearch已成功安装部署下载地址:https://www.elastic.co/downloads/kibana安装运行修改配置文件 kibana.yml,写入Elasticsearch的地址点击bin\kibana.bat启动启动完成后打开 http://localhost:5601点击进入 management -&amp;gt; index Manageme...
2019-01-03 11:38:50
297
原创 [ELK日志分析平台]Elasticsearch的搭建
前提平台:windowsElasticsearch下载地址:https://www.elastic.co/downloads/elasticsearch安装启动下载解压完成后,点击 bin\elasticsearch.bat启动 (这里就不做集群了)访问 http://localhost:9200/简单使用我们通过http方式即可使用Elasticsearch,这里我使用post...
2019-01-03 11:09:27
242
原创 【Spring Cloud】Spring Cloud Config 配置统一管理(一)
Spring Cloud Config 由服务端和客户端组成,借助git仓库存储配置信息,可以轻松的实现分布式项目配置文件统一管理配置中心服务端 spring-cloud-config-server依赖&amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;amp;gt;
2018-12-26 14:50:55
800
原创 【Spring Boot】Sping Boot 默认数据库连接连接池 hikari
在Sping Boot 2.0之后默认使用hikari数据库连接池,您或许不再一定要用druid、c3p0等连接池了hikari的优势在Spring Boot的官方文档中,其更推荐使用hikari数据库连接池,因其高效的性能和并发性。在很多朋友的感受中,HiKariCP是数据库连接池的一个后起之秀,号称性能最好,可以完美地PK掉其他连接池,是一个高性能的JDBC连接池,基于BoneCP...
2018-12-24 15:49:16
20875
1
原创 【Spring Boot】Sping Boot 模板引擎 thymeleaf 的使用 以及 layout 的使用例子
在Spring Boot 2.0 以上版本,一定要引用 thymeleaf-layout-dialect !!!,不然你得layout就无法使用
2018-12-21 11:18:44
732
原创 【Spring Boot】Sping Boot与Mybatis的集成例子
这里我直接把Spring Boot集成了TKMyBatis,在实际项目使用使用非常方便,不需要写常用的增删改查接口。项目依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent<...
2018-12-21 10:04:22
301
原创 【Spring Boot】定时任务 Scheduled
在我们的项目开发过程中,经常需要定时任务来帮助我们来做一些内容,springboot默认已经帮我们实行了,只需要添加相应的注解就可以优雅的实现。对于一些简单的任务调度,这是一种非常简便的方式。项目依赖 &lt;parent&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &
2018-12-21 09:47:23
298
原创 [RabbitMQ]核心概念
Server:又称Broker,接受客户端的连接,实现AMQP实体服务Connection:连接,应用程序与Broker的网络连接Channel:网络信道几乎所有的操作都在Channel中进行Channel是进行消息读写的通道客户端可建立多个Channel每个Channel代表一个会话任务Message:消息服务器和应用程序之间传送的数据,由Properties和Bo...
2018-12-19 09:23:23
214
Spring DefaultListableBeanFactory类结构及功能
2018-06-14
知识库管理系统(源码+数据)
2018-05-15
html5实战——在线涂鸦系统
2016-11-23
html5实战——涂鸦系统
2016-11-23
关于java对象销毁的疑问??
2017-02-16
车次查询是否需要搜索引擎?
2017-02-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人