- 博客(39)
- 收藏
- 关注
转载 Jmh测试JDK,CGLIB,JAVASSIST动态代理方式的性能
前言JDK,CGLIB,JAVASSIST是常用的动态代理方式。JDK动态代理仅能对具有接口的类进行代理。CGLIB动态代理方式的目标类可以没有接口。Javassist是一个开源的分析、编辑和创建Java字节码的类库,JAVASSIST可以动态修改类,比如添加方法和属性。JAVASSIST的目标类也没有接口限制。动态代理常用在RPC接口调用中,因此选择一个好的动...
2019-07-11 03:21:00
340
转载 localstorage实现带过期时间的缓存功能
前言一般可以使用cookie,localstorage,sessionStorage来实现浏览器端的数据缓存,减少对服务器的请求。1.cookie数据存放在本地硬盘中,只要在过期时间之前,都是有效的,即使重启浏览器。但是会在每次HTTP请求中添加到请求头中,如果数据过多,会造成性能问题。2.sessionStorage保存在浏览器内存中,当关闭页面或者浏览器之后,信息丢...
2019-06-28 15:56:00
439
转载 使用位图算法来优化签到历史存储空间占用
前言实际开发中有这样的场景,用户每日签到,可获取相对应的积分赠送,如果连续签到,则可获得额外的积分赠送。本文主要讲解使用位图算法来优化签到历史记录的空间占用。当然如果业务中仅仅是获取连续签到的最大天数,使用一个计数器即可记录。需求:1.记录一年的签到历史2.获取某月的签到历史3.获取过去几天连续签到的最大天数位图算法实现思路一天的签到状态...
2019-06-27 14:26:00
198
转载 Spring 创建Bean的6种方式
前言本文讲解了在Spring 应用中创建Bean的多种方式,包括自动创建,以及手动创建注入方式,实际开发中可以根据业务场景选择合适的方案。方式1:使用Spring XML方式配置,该方式用于在纯Spring 应用中,适用于简单的小应用,当应用变得复杂,将会导致XMl配置文件膨胀 ,不利于对象管理。<bean id="xxxx" class="xxxx.x...
2019-06-20 18:36:00
526
转载 docker cannot stop container问题解决
docker 容器在启动时出现异常,删除容器或者暂停容器时会出现cannot stop container先使用sudo aa-remove-unknown ,再进行其他操作lgj@lgj-Lenovo-G470:~/java/start$ docker ps CONTAINER ID IMAGE COMMAND ...
2019-06-16 23:43:00
2199
转载 Could not get lock /var/lib/dpkg/lock-frontend解决
在安装软件包时如果出现Could not get lock /var/lib/dpkg/lock-frontend,说明之前使用apt时出现异常,没有正常关闭,还在运行。lgj@lgj-Lenovo-G470:~$ sudo apt-get install alien[sudo] password for lgj: E: Could not get lock /va...
2019-06-16 00:53:00
1328
转载 SpringBoot解决跨域请求拦截
前言同源策略:判断是否是同源的,主要看这三点,协议,ip,端口。同源策略就是浏览器出于网站安全性的考虑,限制不同源之间的资源相互访问的一种政策。比如在域名https://www.baidu.com下,脚本不能够访问https://www.sina.com源下的资源,否则将会被浏览器拦截。注意两点:1.必须是脚本请求,比如AJAX请求。但是如下情况不会...
2019-06-15 02:32:00
283
转载 Mybatis插件开发
前言MyBatis开放用户实现自己的插件,从而对整个调用过程进行个性化扩展。这是MyBatis整个调用流程的主要参与者。我们可以对其中的一些过程进行拦截,添加自己的功能,比如重写Sql添加分页参数。拦截的接口MyBatis允许拦截的接口如下Executorpublic interface Executor { ResultHandler...
2019-06-10 16:18:00
141
转载 kill 命令在Java应用中使用注意事项
前言我们都知道,kill在linux系统中是用于杀死进程。kill pid [..]kill命令可将指定的信号发送给相应的进程或工作。 kill命令默认使用信号为15,用于结束进程或工作。如果进程或工作忽略此信号,则可以使用信号9,强制杀死进程或作业.因此,如果确保将进程杀死,可以使用-9参数kill -9 pid [..]linux 中常见...
2019-06-09 01:25:00
244
转载 SpringBoot处理全局统一异常
在后端发生异常或者是请求出错时,前端通常显示如下Whitelabel Error PageThis application has no explicit mapping for /error, so you are seeing this as a fallback.Fri Jun 07 15:38:07 CST 2019There was an unex...
2019-06-07 16:11:00
124
转载 docker上传自己的镜像
本文章主要讲述如何创建镜像并上传到自己的dockerhub中。如果还没有安装docker,请参考docker安装第一步在dockerhub https://hub.docker.com/上创建帐号。docker是和github类似的仓库,用于存放自己的镜像。可以创建私有和公开的仓库。私有的仓库免费的有限制,貌似只能创建一个仓库,公开的没有限制。第二步拉取一个...
2019-06-05 23:23:00
182
转载 创建swagger的springboot-stater,并在spring cloud zuul网关中引入
Swagger 是一款RESTFUL接口的、基于YAML、JSON语言的文档在线自动生成、代码自动生成的工具。通过在controller中添加注解,即可轻易实现代码文档化。Swagger提供ui界面,方便查看接口说明和测试接口功能。swagger-github本文主要讲解如何创建一个swagger 的springboot starter项目,只要在其他服务中引入该...
2019-06-05 16:10:00
272
转载 Docker+Jenkins+Git发布SpringBoot应用
DocckerDocker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。一个完整的Docker有以下几个部分组成:DockerClient客户端Docker Daemon守护进程Docker Im...
2019-06-02 13:13:00
313
转载 git使用.gitignore文件忽略相关文件上传
在使用git时,有些文件是不需要上传到仓库中的,比如idea/eclipse相关的文件,编译后的文件(target目录)等。可以使用.gitignore文件进行配置。在git本地仓库创建.gitignore文件。#maventarget/#IDEA.idea/*.iml#eclipse.settings/.metadata/.classpath.proj...
2019-05-27 11:48:00
169
转载 使用CompletableFuture实现异步编程
在开发中会碰到一种场景,如下Object result1 = service1.func1();//执行80msObject result2 =service2.func2();//执行50msservice3.func3(result1,result2);func3()需要等待func1和func2的执行结果。总共需要等待130ms.如果能够让fun...
2019-04-29 15:57:00
132
转载 注解ConfigurationProperties注入yml配置文件中的数据
在使用SpringBoot开发中需要将一些配置参数放在yml文件中定义,再通过Java类来引入这些配置参数SpringBoot提供了一些注解来实现这个功能ConfigurationPropertiesValueEnableConfigurationProperties下面提供例子来说明如何引入常规变量,数组,List,Map,引用对象。[相关代码-GitH...
2019-04-24 16:00:00
394
转载 一些常用Java序列化框架的比较
概念序列化:将Java对象转化为字节数组反序列化:将字节数组转化为Java对象在RPC应用中,进行跨进程远程调用的时候,需要使用特定的序列化技术,需要对进行网络传输的对象进行序列化和反序列化。影响序列化选择有两个因素1. 序列化之后码流的大小,如果太大,那么将会影响网络传输的性能。2. 序列化和反序列化过程的性能常用的序列化框架性能比较...
2019-04-18 17:40:00
151
转载 分布式负载均衡算法的实现
在分布式项目中,为了提高系统的可用性,服务提供者一般都会做集群处理,当其中一个服务出现宕机的时候,集群的其他服务仍然能够提供服务,从而提高系统的可靠性。常用的负载均衡算法有:随机算法加权随机算法轮询算法加权轮询算法最小时延算法一致性hash算法负载均衡追求的是每个服务提供者的负载一致,不会出现负载不均衡的情况。以下所有的代...
2019-04-18 02:34:00
207
转载 Java 钩子函数编程技巧
Java提供注册钩子线程,在JVM进程关闭之前,会自动执行这个钩子线程。运用这个技巧,可以再JVM关闭之前,释放一些系统资源。这个功能利用的是Runtime类来实现。public class Hook { public static void main(String args[]){ System.out.println("程序开始...
2019-04-08 11:52:00
332
转载 Spring Bean 生命周期测试
本文代码GitHub地址Bean的生命周期是开始创建到销毁的过程。需要实现相关的类BeanNameAware ,DisposableBean, InitializingBean ,并注册InstantiationAwareBeanPostProcessor。Bean类实现BeanNameAware ,DisposableBean, InitializingB...
2019-04-07 10:48:00
135
转载 Kafka 消费者相关配置
消费者相关配置类为org.apache.kafka.clients.consumer.ConsumerConfig具有以下配置参数1. GROUP_ID_CONFIG = "group.id"; 消费者分组ID,分组内的消费者只能消费该消息一次,不同分组内的消费者可以重复消费该消息。简单讲就是一条消息会被发送到不同的分组,每个分组是否消费该消息不会互相影响,但是,分组...
2019-03-21 11:52:00
837
转载 Kafka的partions和replication-factor参数的理解
Topic在Kafka中是主题的意思,生产者将消息发送到主题,消费者再订阅相关的主题,并从主题上拉取消息。在创建Topic的时候,有两个参数是需要填写的,那就是partions和replication-factor。partions 主题分区数。kafka通过分区策略,将不同的分区分配在一个集群中的broker上,一般会分散在不同的broker上,当只有一个broker时...
2019-03-21 01:25:00
845
转载 Linux下单机实现Zookeeper集群
安装配置JAVA开发环境下载ZOOKEEPERzookeeper下载地址在下载的zookeeper目录里创建3个文件,zk1,zk2,zk3,用于存放每个集群的数据文件。并在三个目录下创建data和logs目录配置配置文件将conf目录下的zoo-sample.cfg 更改为zoo1.cfg ,zoo2.cfg ,zoo3.cfg配置如下...
2019-03-17 11:23:00
123
转载 IDEA zookeeper插件的使用
安装插件file-settings-Plugins搜索zookeeper,并安装,安装完成后重启IDEA配置IP地址和端口位于Other settings 中的zookeeper选项中配置注意需要勾选Enable Zookeeper选项,设置完成后保存。使用可以看到左侧工具栏出现了zookeeper选项当鼠标放在某个节点上,还会出...
2019-03-17 00:21:00
1661
转载 MySQL中的自适应哈希索引
众所周知,InnoDB使用的索引结构是B+树,但其实它还支持另一种索引:自适应哈希索引。哈希表是数组+链表的形式。通过哈希函数计算每个节点数据中键所对应的哈希桶位置,如果出现哈希冲突,就使用拉链法来解决。更多内容可以参考 百度百科-哈希表从以上可以知道,哈希表查找最优情况下是查找一次.而InnoDB使用的是B+树,最优情况下的查找次数根据层数决定。因此为了提高查询效率,Inn...
2019-03-08 00:15:00
539
转载 MySql开启慢查询日志并使用pt-query-digest 分析
慢查询日志会将查询过程中超出你设置的时间的查询记录下来,以便供开发者进行分析和优化。1. 开启慢查询1.1 查看当前设置mysql> show variables like "%query%";输出+------------------------------+-----------------------------------------+...
2019-02-27 22:59:00
116
转载 解决Ajax请求时无法重定向的问题
今天发现,当使用Ajax请求时,如果后台进行重定向到其他页面时是无法成功的,只能在浏览器地址栏输入才能够实现重定向。Ajax默认就是不支持重定向的,它是局部刷新,不重新加载页面。需要实现的功能是,后台网关拦截请求,看请求中是否存在token.如果不存在就跳转到登录页面。因为大多数请求都是使用Ajax.一开始发现无法进行重定向,每次都是返回到Ajax的结果处理函数。最终的解决...
2019-02-27 17:53:00
1084
转载 实现iframe高度自适应
iframe高度自适应使用场景是类似于微博,新闻等点击加载更多这种功能实现,要求iframe的高度能够跟随内容的变化而变化。父html文件,也就是引用ifram的文件src="blog/blog.display.html" 引用的文件id="blog-display" 全局唯一IDscrolling="no" 去除滚动条<iframe src="blog/...
2019-02-22 13:05:00
68
转载 使用BeanUtils类实现DTO之间的同名属性复制
开发中经常碰到这样的场景,从数据库查询出来全部的字段,但是有些字段是不想给客户端看到,这时就需要将属性从DAO复制到传给客户端的DTO对象,如果采用get/set,那显得很麻烦。可使用反射实现。Spring框架的org.springframework.beans.BeanUtils 类帮我们实现了这个功能。例子@Dataclass Source{...
2019-02-21 15:22:00
348
转载 IDEA mybatis mapper类跳转到xml文件
安装插件 free mybatis plugin,安装完成后重启,ctrl+单击即可跳转。转载于:https://www.cnblogs.com/lgjlife/p/10398656.html
2019-02-18 23:39:00
1407
转载 idea中去除重复代码提示的灰色波浪线
可以看到上面代码中的灰色波浪线,特别影响观感,可以看到是因为有了重复代码。不确定它是怎么确定重复代码的。解决办法:Setting--Editor--Inspections--General---Duplicated Code fragment ,把勾去掉即可。去除mapper.xml文件的背景色No data sources configu...
2019-02-18 18:52:00
350
转载 octotree-chrome插件,Github代码阅读神器
1.下载octotree-chrome插件下载地址2.安装问题由于新版chrome为了安全,已经不支持像以前一样拖拽插件进行安装,只能从其Chrome Web Store 下载安装扩展程序。解决办法:Linux环境:google-chrome --enable-easy-off-store-extension-install,命令行以该方式启动chromeWi...
2019-01-09 16:50:00
137
转载 java常用工具(jps等)说明
Java为我们提供了大量的工具辅助我们进行开发,位于jdk目录下的bin目录里,本篇博客将会随时更新相关工具的使用说明。jps 获取当前运行的java应用lgj@lgj-Lenovo-G470:~/java/FastDFS$ jps -helpusage: jps [-help] jps [-q] [-mlvV] [<hostid>]...
2019-01-08 00:56:00
80
转载 Amqp整合com.rabbitmq.client.ShutdownSignalException: channel error; protocol method异常处理
java.io.IOException at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:126) at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:122) at com.rabbitmq.client.impl....
2019-01-06 18:18:00
238
转载 Linux下Zookeeper安装使用
1. 下载下载地址,选择稳定的版本,比如3.4.13,beta为在测版本2. 复制到任意的目录,解压3. 修改配置文件配置文件位于conf目录下,原配置文件为zoo_sample.cfg,更改为zoo.cfg才能被识别。在配置文件末尾加上 :server.1=bogon:2888:38884.启动在bin目录下可以看到多个脚本...
2019-01-05 18:36:00
85
转载 Dubbo的@Reference和@Service说明
前言@Reference 用在消费端,表明使用的是服务端的什么服务 1 @RestController 2 public class RemoteUserController { 3 4 5 6 @Reference(version = "1.0.0",check = true) 7 private RemoteUserSe...
2019-01-05 17:41:00
885
转载 java.lang.ClassNotFoundException: org.I0Itec.zkclient.IZkStateListener异常解决
在启动Dubbo项目时,出现该异常java.lang.ClassNotFoundException: org.I0Itec.zkclient.IZkStateListener解决,引入<dependency> <groupId>com.github.sgroschupf</groupId> <ar...
2019-01-03 00:23:00
1444
转载 Java 开发常用工具
编译器IDEA (个人觉得IDEA比较好用)EclipseMyEclipseIDEA插件Lombok: 使用注解,免去实体类中get /set/构造器等代码 ,需要引入lombok包Alibaba Java Coding Guidelines :《阿里巴巴Java开发规约》扫描插件,安装后右键单击选择扫描,会提示哪些地方不符合规范MyBatis p...
2018-12-25 15:51:00
79
转载 Java体系学习书籍推荐
以下所有资料均可在:Java知识分享网下载。大家有推荐的书可以在下方留言!开源代码GitHub仓库总结计算机基础计算机科学导论 --(如果不是计算机科班的,应先看看计算机基础,了解一些基本概念,有助于之后的学习)计算机操作系统操作系统原理及应用(Linux)LINUXLinux命令行与shell脚本编程大全 --(常用命...
2018-12-18 17:15:00
158
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人