自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(99)
  • 资源 (7)
  • 收藏
  • 关注

原创 基于GraphQL-Java的数据网关系统设计

数据网关系统设计项目背景问题发现解决方案技术设计GraphQL介绍设计框架功能与使用数据查询数据聚合数据计算字段鉴权数据灰度接入方式方法说明后续项目背景随着业务的发展,可以预期到平台的相关子系统,会出现大量依赖外部系统的API服务以及内部系统之间数据流转的情况。如何高效维护这些内部和外部的API,低成本接入外部的服务成了一个棘手的问题问题发现平台内子系统在对接外部系统数据源时,可能有需求重复,导致重复接入增加各子系统开发成本成N*M倍增长;

2020-09-01 14:38:57 606

原创 GraphQL-Java二次开发

GraphQL-Java二次开发Directive指令计算指令DirectiveDirective,指令,可以对Field\Type等类型进行标识,进行一些特殊功能,下面介绍几个常用的指令计算指令 calc通过calc指令,可以在服务端,实行对一些字段的自定义处理.其底层是利用解析Groovy脚本实现 directive @calc ( pattern: String! ) on FIELD_DEFINITION | FIELD #学生信息 type Stud

2020-09-01 20:12:29 435

原创 spring cloud使用中遇到的一些偏僻问题

1.eureka dashboard的界面无法加载图片等静态资源;最有可能原因是将EurekaServer和ConfigServer放在了一起,具体参考如下:https://github.com/spring-cloud/spring-cloud-netflix/issues/1262其次愿意可能是配置的Eureka的路径不是默认,需要通过eureka.dashboard.path进行调整;最后还...

2018-01-27 17:00:23 518

原创 M-Zsh设置

1.打开mac终端的偏好设置 选择Man Page据说这种底色对视力有好处;2.使用如下指令:cd ~sudo vim .bash_profile在最后添加一行:export ZSH="$HOME/.dotfiles/oh-my-zsh"; sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/m

2018-01-03 14:18:48 356

原创 redis相关

redis虽然是单线程的队列处理方式,但是在客户端高并发的情况下任然会出现竞争问题,其解决思路可以从以下几个方面考虑: 1.客户端 客户端在调用redis时,注意各个线程之间的争用情况,注意使用lock、synchronize进行线程之间的协调; 2.服务端 服务端在处理客户端的请求时,注意采用分布锁; setnx getAndSet multi事务处理 在进行加锁时,要特别注意死锁

2017-11-10 09:52:50 384

原创 Spring事务的个人总结

Spring事务的理解 事务的四个特性: 原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。 一致性(Consistency):一旦事务完成(不管成功还是失败),系统必须确保它所建模的业务处于一致的状态,而不会是部分完成部分失败。在现实中的数据不应该被破坏。 隔离性(Isolation):可能有许多事务会同

2017-11-08 19:01:56 358

原创 Spring的Cache使用

Spring在3.x中提供了缓存功能,可以使用注解对方法执行结果进行缓存。核心注解使用 @Cacheable 主要针对方法配置,能够根据方法的请求参数对其结果进行缓存@CacheEvict 主要针对方法配置,能够根据方法的请求参数对其结果进行清理制定的缓存@CachePut 主要针对方法配置,能够根据方法的请求参数对其结果进行缓存更新@CacheConfig 针对类,制定类中所有

2017-09-26 13:58:09 304

原创 java中缓存切入方式

java中对缓存的实现有多重方式,从技术角度来讲我觉得可以分为两类:分布式缓存和本地缓存;前者多使用redis、memcache等分布式数据库实现,后者主要是map、loadingCache实现;无论采用哪种实现方式,都需要比较好的缓存切入点,总结了下java中实现缓存比较常用的几个切入点:Mybatis的Cache接口 Mybatis的Interceptor接口 Spring的S

2017-09-25 12:28:39 318

转载 mybatis一级缓存、二级缓存和自定义二级缓存

2017-09-18 09:55:31 442

原创 Set与线程安全

Collections.newHashSetFromMap

2017-09-08 09:50:59 28927

原创 jvm垃圾收集器

jvm垃圾收集的总价可以参考如下blog: http://blog.csdn.net/java2000_wl/article/details/8030172 http://www.jianshu.com/p/50d5c88b272dcms收集器详解: http://blog.csdn.net/mark__zeng/article/details/48751053查看jvm使用的收集器 htt

2017-08-12 16:27:22 217

原创 spring bean的使用总结

1.注解使用方法 用@Configuration注解该类,等价 与XML中配置beans;用@Bean标注方法等价于XML中配置bean;public class Address { private String location = "location";// 街道 private Integer doorId = 1;// 门牌号 public String getLoc

2017-08-02 09:46:38 284

原创 JAVA内部类

package demos.other.java;/** * <code>InnerClassDemo</code> * * @author zhuan.liu 17-7-23 * @version 1.0 */public class InnerClassDemo { private String s1 = "s1"; public String s2 = "s2";

2017-07-23 11:25:22 187

转载 字符串池总结

1.String s1=”s”; 字符串池中创建“s”; 2.String s2 = new String(“s”); 首先在字符串池中查询是否有“s”,若有则复制到堆,并将内存地址返回; 若没有,则在堆中新建”s”,复制到字符串池,返回内存地址; 3.String s3 = s2 + “ss”; 在堆中新建对象”ass”,返回引用

2017-07-12 10:03:05 216

转载 jvm调试问题

1.jps找不到 linux下jps command not found 今天在linux下查看进程,使用命令jps,可是却提示找不到命令,这条命令是在jdk下的bin目录下的一个可执行文件,我查看了一下我的jdk目录,发现有jps可执行文件,但是只是没有放在环境变量里面而已,环境变量可以通过etho PATH命令查看。所以就要自己加上去,以root身份vi/etc/profile,然后在下面

2017-07-11 11:50:39 251

原创 装箱拆箱

public class BoxDemo { public static void main(String[] args) { Boolean i1 = false; Boolean i2 = false; System.out.println(i1 == i2);// true Integer a = Integer.value

2017-07-10 09:29:12 217

原创 linux常用命令

lsof

2017-07-07 10:23:41 225

原创 Mysql中key和index区别

待补充

2017-07-06 09:19:38 287

原创 联合索引

建立规则 1.等值查询中,查询条件a,b分别查询时返回的条目比较多,但是同时查询时返回条目比价少,可以建立联合索引; 2.对于有等值查询的列和范围查询的列,等值查询的列建在前,范围查询的列建在后比较实用; 3.如果联合索引的前置列和索引单列一致,则可以用到索引,因此尽量将联合索引的前置列和常用的单列一致; 4.超过3列的索引不合适,会导致索引块过多,查询是会遍历更多的索引块; 5.索引建立

2017-07-06 09:19:11 380

转载 javap反编译指令

将常量压入栈的指令 aconst_null 将null对象引用压入栈 iconst_m1 将int类型常量-1压入栈 iconst_0 将int类型常量0压入栈 iconst_1 将int类型常量1压入栈 iconst_2 将int类型常量2压入栈 iconst_3 将int类型常量3压入栈

2017-06-30 11:51:46 334

转载 java锁概念总结

1.读写锁 http://ifeve.com/read-write-locks/总结下java的锁的概念自旋锁 自旋锁是采用让当前线程不停地的在循环体内执行实现的,当循环的条件被其他线程改变时 才能进入临界区。 http://ifeve.com/java_lock_see1/ http://ifeve.com/java_lock_see2/阻塞锁 http://ifeve.com/ja

2017-06-19 10:32:20 663

原创 jdk Atomic包

原子操作类可以分为4类。 1. 基本类型: AtomicInteger, AtomicLong, AtomicBoolean ; 2. 数组类型: AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray ; 3. 引用类型: AtomicReference, AtomicStampedRerence, AtomicMarkableRe

2017-06-19 09:24:03 258

原创 算法、数据结构知识点

树的类别 http://blog.csdn.net/sinat_26533265/article/details/51247920

2017-06-17 16:17:18 232

原创 数据库知识点

超键、候选键、主键、外键 超键,在关系中能唯一标识元组的属性集称为关系模式的称为超键; 候选键,不含有多余属性的超键称为候选键,(candidate key); 主键,用户选作元组标识的一个候选键程序主键; 外键,一个表中存在其他表的主键称为此表的外键; http://www.cnblogs.com/lumnm/archive/2010/11/08/1871783.html视图 视图是

2017-06-17 13:21:26 240

原创 dubbo的均衡策略

RandomLoadBalancepublic class RoundRobinLoadBalance extends AbstractLoadBalance { public static final String NAME = "roundrobin"; private final ConcurrentMap<String, AtomicPositiveInteger> sequen

2017-06-15 20:40:24 250

原创 Spring注解总结

记录下不经常用到的一些注解;@Qualifier 在使用Spring框架中@Autowired标签时默认情况下使用 @Autowired 注释进行自动注入时,Spring 容器中匹配的候选 Bean 数目必须有且仅有一个。当找不到一个匹配的 Bean 时,Spring 容器将抛BeanCreationException 异常,并指出必须至少拥有一个匹配的 Bean。 Spring 允许我们通过

2017-06-15 09:13:15 287

原创 sleep、wait争用锁

线程在调用sleep()时,不放弃对对象的加锁,wait()会放弃,直到notify或是超过时间后重新获取对象锁。但是如果一个线程在先调用wait后紧接着调用了sleep,是否会重新获取对象锁呢? 写了个Demo,证实是可以的。package demos.multiThreadDemo;/** * java中的sleep()和wait()的区别 * * @date 2013-12-10

2017-06-11 15:47:00 270

原创 Spring总结

1.IOC IOC,控制反转,即由spring控制对象的生命周期和对象之间的关系; 2.AOP AOP使用场景:Authentication 权限\Caching 缓存\Context passing 内容传递\Error handling 错误处理\Lazy loading 懒加载\Debugging  调试\logging, tracing, profiling and monitorin

2017-06-04 19:54:57 276

原创 java知识点总结

ArrayList和LinkedList的区别ArrayList是用数组实现;插入时需要整体将插入位置后的数据后移,效率较低;查找效率较高;当前空间不满足时,会增加50%的空间量,空间消耗大,可以在初始化时指定空间; LinkedList使用链表实现;任何位置插入删除开销相同;查找效率较低;2.HashSet、HashMap、HashTable区别

2017-06-04 16:53:26 779 1

原创 kafka学习记录

1.kafka入门 http://www.cnblogs.com/likehua/p/3999538.html

2017-05-07 19:18:18 291

原创 Servlet总结

Servlet容器的工作过程是:当客户请求某个资源时,Servlet容器使用ServletRequest对象把客户的请求信息封装起来,然后调用Java Servlet API中定义的Servlet的一些生命周期方法,完成Servlet的执行,接着把Servlet执行的要返回给客户的结果封装到 ServletResponse对象中,最后Servlet容器把客户的请求发送给客户,完成为客户的一次服务过程

2017-05-07 15:19:46 300

原创 使用es中遇到的问题

1.安装head插件时,记性npm install时提示错误:This failure might be due to the use of legacy binary “node” 原因:可能是因为安装了node而不是nodejs导致,使用如下指令安装sudo apt-get install nodejs-legacy后重新进行npm install即可正常2.安装grunt插件: sudo

2017-04-08 12:49:27 6511

原创 Collection使用问题

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 4

2017-04-06 11:23:41 601

转载 scala与java混编maven插件

net.alchim31.maven scala-maven-plugin 3.2.2 compile

2017-03-26 14:45:23 1255

原创 批量update的几种方式

1.最简单的方式通过多次执行update tablename set () values();适用于并发少,不会对数据库造成较大压力的情况下使用;2.使用foreachmapper栗子如下: "updatePayNoticketsBatch" parameterType="java.util.List"> "payNoticketModels" i

2017-03-26 14:44:34 20743

原创 MyBatis中的动态SQL

Mybatis的主要动态SQL有如下分类:ps:网上有一篇写的很传神的blog ,估计用不上,先记录以下吧ifchoose (when, otherwise)trim (where, set)foreachif:有条件的包含where子句的一部分;比如:"findActiveBlogWithTitleLike" resultType="Blog"> SEL

2017-03-26 14:42:45 273

转载 com.alibaba.druid的介绍

其pom配置可以从以下选择:http://repo1.maven.org/maven2/com/alibaba/druid/与dbcp类似,其常用的配置如下:配置缺省值说明name 配置这个属性的意义在于,如果存在多个数据源,监控的时候可以通过名字来区分开来。如果没有配置,将会生成一个名字,格式是:"DataSource-" + Syst

2017-03-26 14:42:06 4123

原创 ubuntu终端下几个实用工具

以下几款工具,多用于服务器运维人员,但是对于后台开发人员,也是大有裨益的。工具 介绍 相关资料链接 slurm 监控网络,可以用来查看电脑上不同网卡实时的网络传输情况链接iftop 查看流量的,但是和slurm相比显示的内容更加详尽。可以查看当前发生交互的IP以及数据量的大小链接iptr

2017-03-26 14:40:59 1998

原创 StringUtils比String中多的方法

StringUtils中常用的方法,这里主要列举String中没有,且比较有用的方法:1. 检查字符串是否为空:static boolean isBlank(CharSequence str) 判断字符串是否为空或null;static boolean isNotBlank(CharSequence str) 判断字符串是否非空或非null;2. 缩进字符串:static St

2017-03-26 14:40:24 846

转载 java中MD5混淆

网站的密码等都需要进行加密后存入数据库,流行的方法采用的是MD5混淆,下面就这种方法做个简单的使用介绍。 public static String stringMD5(String input) { try { // 拿到一个MD5转换器(如果想要SHA1参数换成”SHA1”) MessageDigest messageDi

2017-03-26 14:39:52 878

RabbitMQ实战指南.pdf

朱忠华 rabbitMq 实战指南 2017年最新版 介绍了rabbitMq的相关原理

2019-07-02

Activiti实战 PDF电子书-含书签目录.pdf

acitiviti实战 pdf 含书签 目录

2019-06-12

NetLogo中文用户手册

NetLogo中文用户手册,里面有大量的实例介绍,可以做参考使用

2016-03-23

NumPy攻略: Python科学计算与数据分析 书中代码

NumPy攻略: Python科学计算与数据分析 书中代码

2015-05-20

framework 卸载工具

第三方的framework 卸载工具,亲测很好用!

2015-04-22

procexp_V15.40.0.0.4202571463

Process Explorer 是一款免费的增强型任务管理器,是最好的进程管理器. 它能让使用者了解看不到的在后台执行的处理程序,可以使用它方便地管理你的程序进程. 能监视,挂起,重启,强行终止任何程序,包括系统级别的不允许随便终止的关键进程和十分隐蔽的顽固木马. 除此之外,它还详尽地显示计算机信息: CPU,内存,I/O使用情况,可以显示一个程序调用了哪些动态链接库DLL,句柄,模块,系统进程. 以目录树的方式查看进程之间的归属关系,可以对进程进行调试. 可以查看进程的路径,以及公司,版本等详细信息,多色彩显示服务进程,很酷的曲线图. 可以替换系统自带的任务管理器,有了它,系统自带的任务管理器就可以扔进垃圾桶了.

2015-04-15

KNN算法识别0~9

分别用c++和python语言对0~9图像进行识别,识别准确率98.3%

2015-03-26

空空如也

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

TA关注的人

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