自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(183)
  • 收藏
  • 关注

原创 2018.8.2 java电商从1到2--chapter10 SpringMVC拦截器实现权限统一验证

目录第10章 SpringMVC拦截器实现权限统一验证10.1 总览10.2 一期代码回顾10.3 拦截器的配置10.4 拦截器的使用10.5 重构代码第10章 SpringMVC拦截器实现权限统一验证10.1 总览一期代码关于权限判定的演进 SpringMVC拦截流程图 拦截器配置与使用 HttpServletResponse的重置 登录不拦截 代码...

2018-08-02 20:29:59 367

原创 2018.8.2 java电商从1到2--chapter9 SpringMVC全局异常处理

目录第9章 SpringMVC全局异常处理9.1 总览9.2 异常流程图9.2.1 无SpringMVC全局异常9.2.2 有SpringMVC全局异常9.3 使用SpringMVC全局异常9.3.1 配置9.3.2 代码第9章 SpringMVC全局异常处理9.1 总览SpringMVC全局异常处理 Spring和SpringMVC包扫描范围 @C...

2018-08-02 20:19:37 321

原创 2018.8.2 java电商从1到2--chapter15~16 SpringSchedule+Redission实现分布式任务调度

目录第15章 Redission的使用15.1 总览15.2 Redission介绍15.3 Redission集成15.4 Redission使用第16章 使用Spring schedule+Redission实现分布式任务调度16.1 总览16.2 定时任务使用Redission16.3 wait_time的坑第15章 Redission的使用15....

2018-08-02 20:10:03 746

原创 2018.8.2 java电商从1到2--chapter13~14 SpringSchedule+redis分布式锁实现分布式任务调度

目录第13章 redis分布式锁13.1 分布式锁涉及的命令13.2 分布式锁流程图第14章 分布式任务调度14.1 总览14.2 基础版代码14.3 防死锁14.4 双重防死锁第13章 redis分布式锁13.1 分布式锁涉及的命令setnx:原子性,只有当旧值不存在时才会set成功,返回1,否则返回0。getset:原子性,设置新值后返回旧值。...

2018-08-02 19:37:32 1303

原创 2018.8.2 java电商从1到2--chapter12 SpringSchedule实现定时关单

目录chapter12 SpringSchedule实现定时关单12.1 总览12.2 cron表达式12.3 Spring Schedule的使用12.3.1 配置文件applicationContext.xml12.3.2 @Schedule注解12.3.3 真正的关单操作12.4 mysql的行锁和表锁12.1 总览SpringSchedule的使用...

2018-08-02 18:50:21 364 3

原创 读书笔记--深入理解java虚拟机--第3章 垃圾收集器和内存分配策略

第3章 垃圾收集器和内存分配策略目录第3章 垃圾收集器和内存分配策略3.1 概述3.2 对象已经死了吗3.2.1 引用计数法3.2.2 可达性分析3.2.3 再谈引用3.2.4 二次标记3.2.5 回收方法区3.3 垃圾收集算法3.3.1 标记-清除算法3.3.2 复制算法3.3.3 标记-整理算法3.3.4 分代收集算法3.4 HotS...

2018-08-02 18:16:34 166

原创 读书笔记--深入理解java虚拟机--第9章 类加载及执行子系统的案例与实战

第9章 类加载及执行子系统的案例与实战目录第9章 类加载及执行子系统的案例与实战9.1 概述9.2 案例分析9.2.1 tomcat:正统的类加载器架构9.2.2 OSGi:灵活的类加载器架构9.2.3 字节码生成技术和动态代理的实现9.2.4 Retroranslator:跨越JDK版本9.3 实战:自己动手实现远程执行功能9.1 概述略。 9...

2018-08-02 18:10:35 462

原创 读书笔记--深入理解java虚拟机--第7章 虚拟机类加载机制

第7章 虚拟机类加载机制目录第7章 虚拟机类加载机制7.1 概述7.2 类加载的时机7.3 类加载的过程7.3.1 加载7.3.2 验证7.3.3 准备7.3.4 解析7.3.5 初始化7.4 类加载器7.4.1 类与类加载器7.4.2 双亲委派机制7.4.3 破坏双亲委派机制7.1 概述虚拟机如何加载Class文件?Class文...

2018-08-02 18:08:03 333

原创 读书笔记--深入理解java虚拟机--第2章 java内存区域与内存溢出异常

深入理解java虚拟机--第2章 java内存区域与内存溢出异常目录深入理解java虚拟机--第2章 java内存区域与内存溢出异常2.1 概述2.2 运行时数据区域2.2.1 程序计数器2.2.2 虚拟机栈2.2.3 本地方法栈2.2.4 java堆2.2.5 方法区2.2.6 运行时常量池2.2.7 直接内存2.3 HotSpot虚拟机2.3...

2018-08-01 21:33:08 489

原创 2018.7.27 java电商从1到2--chapter8 SpringSession实现单点登录

在chapter6中用redis+cookie+jackson+filter实现单点登录,并且在chapter7中将redis改为了分布式。但是这种方式对业务有侵入,可以看到我们需要将session.getAttribute()改为RedisPoolUtil.get()。 使用SpringSession可以实现零侵入。使用者仍然从session中拿到属性即可,也不需要处理cooki...

2018-07-27 17:40:51 351

原创 2018.7.27 java电商从1到2--chapter7 单点登录+redis分布式

在chapter6中已经使用redis+cookie+jackson+filter来实现单点登录。这里进行进一步优化,使用分布式redis。 7.1 总览redis分布式算法--一致性hash ShardedJedis 7.2 一致性hash参考来自:https://blog.csdn.net/lihao21/article/details/54193868一致性h...

2018-07-27 16:11:13 385 1

原创 2018.7.26 为RapidMiner5进行插件扩展(extension)开发

注意:RapidMiner5和RapidMiner6+采用的插件扩展(extension)开发方式不同。 1 官方资料1.1 extension开发文档https://rapidminer.com/wp-content/uploads/2013/10/How-to-Extend-RapidMiner-5.pdf 1.2 项目工程与extension工程RM5 exten...

2018-07-26 11:17:58 1292

原创 2018.7.24 ant的下载与安装

1 下载下载zip包后直接解压。 2 配置环境变量配置ANT_HOME,并将其配置到path中。 3 验证    

2018-07-24 22:34:04 354

原创 RapidMiner5中读取数据库信息的算子read database源码解析

1 read database算子在文件OperatorCore.xml中找到read database算子对应的类为DatabaseDataReader。<operator> <key>read_database</key> <class>com.rapidminer.operator.io.DatabaseDataReader&lt...

2018-07-23 15:07:52 733

原创 2018.3.16 java电商从1到2--chapter6 单点登录

chapter6 单点登录6.1 总览一期回顾Jedis和redis连接池cookie和session重构一期的session相关模块multi-process debug6.2 一期回顾/user/login.do      登陆后将用户信息存在session/其他操作接口       从session取出user信息,如果不存在需要强制登录,否则不允许操作。/user/logout.do   ...

2018-03-16 14:33:55 315

原创 2018.3.16 cookie的domain与path

现有5个url:1 A.happymmall.com2 B.happymmall.com3 A.happymmall.com/test/cc4 A.happymmall.com/test/dd5 A.happymmall.com/test/test1,3,4,5的domain均为A.happymmall.com2的domain为B.happymmall.com1,2的path均为/3的pa...

2018-03-16 14:04:41 249

原创 2018.3.16 java电商从1到2--chapter5 redis基础

chapter5 redis基础5.1 redis介绍高性能key-value内存数据库,支持持久化。5.2 数据类型string hash list (可以有重复元素,有序)set (不重复且无序)sorted set (不重复且有序)5.3 安装与启动5.3.1 安装(1)linux下载 redis.tar.gz解压 tar -zvxf 编译 make(2)windows直接解压。5.3.2 ...

2018-03-16 10:06:18 240

原创 2018.3.8 shiro的buildSubject相关源码解析

在自己的项目中,对login方法的使用示例:Subject currentUser = new Subject.Builder().buildSubject();token = new UsernamePasswordToken(username,password);currentUser.login(token);Subject.Builder().builderSubject实际最终调用的...

2018-03-07 17:28:35 924

原创 2018.2.27 java电商从1到2--chapter4 tomcat集群与nginx负载均衡

chapter4 tomcat集群与nginx负载均衡4.1 tomcat集群问题1:tomcat集群能带来什么优势?性能up,并发up,高可用,横向拓展...问题2:tomcat集群会带来什么问题?session如何共享,定时任务并发,分布式锁,分布式事务...4.2 tomcat单机部署多应用假设现在一台机器上安装了两个tomcat,tomcat1和tomcat2。4.2.1 linux/ma...

2018-02-27 17:04:25 419

原创 2018.2.27 java电商从1到2--chapter3 maven环境隔离

chapter3 maven环境隔离3.1 环境隔离通常将环境分为:local环境->dev环境->beta环境->product环境。优点:避免分工修改配置文件分环境编译、打包、部署3.2 使用maven实现环境隔离3.2.1 pom <build> <finalName>mmall</finalName> <plug...

2018-02-27 10:42:30 228

原创 2018.2.27 java电商从1到2--chapter2 Lombok集成与解析

chapter2 Lombok集成与解析2.1 介绍官网:https://projectlombok.org作用:通过简单注解来精简代码。优点:精简代码避免修改字段名后忘记修改getter/setter的方法名支持logback、log4j等2.2 使用2.2.1 pom<!-- https://mvnrepository.com/artifact/org.projectlombok/lom...

2018-02-27 10:20:08 369

原创 2018.2.27 java电商从1到2--chapter1 回顾与介绍

chapter1 回顾与介绍1.1 和上期对比1.1.1 架构上的变化使用分布式缓存nginx负载均衡tomcat集群1.1.2 代码上的变化Guava缓存迁移至redis分布式缓存使用springmvc的拦截器实现统一校验springmvc全局异常1.2 本期内容1.2.1 分布式缓存为了解决集群中session共享的问题。这里采用了两种方式,一种是自己实现(redis+cookie+jacks...

2018-02-27 10:10:08 345 1

原创 2018.1.17 RabbitMQ在windows下的安装

1 参考文档整体安装:https://www.cnblogs.com/wangjiesheng/p/7728268.htmlerlang的安装:http://www.erlang-cn.com/52.htmlrabbitmq的安装:https://jingyan.baidu.com/article/a17d5285173ce68098c8f2e5.html2 官方下载http://www.erla

2018-01-18 09:32:33 240

原创 2017.12.27 sqlSessionFactory和sqlSession(to be continued)

参考来自:《深入浅出MyBatis技术原理与实践-第6章 》 1.SqlSessionFactorySqlSessionFactory是一个接口,最重要的功能是提供SqlSession。 1 public interface SqlSessionFactory { 2 3 SqlSession openSession(); 4 5 SqlSessio

2018-01-04 16:43:37 135

原创 2017.12.25 Mybatis物理分页插件PageHelper的使用(二)

参考来自:官方文档的说明:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md上篇博客地址:2017.12.14 Mybatis物理分页插件PageHelper的使用pageHelper的源码解读:http://blog.csdn.net/u014082617/articl

2018-01-04 16:43:34 475

原创 2017.12.14 Mybatis物理分页插件PageHelper的使用(一)

参考来自:http://www.360doc.com/content/15/0728/15/12642656_487954693.shtmlhttps://www.cnblogs.com/digdeep/p/4608933.htmlhttp://www.hifreud.com/2015/03/06/mybatis-7-Pagination/http://www.cnblogs.co

2018-01-04 16:43:31 4102

原创 2017.12.12 架构探险-第一章-从一个简单的web应用开始

参考来自:《架构探险》黄勇 著 1 使用IDEA搭建MAVEN项目1.1 搭建java项目(1)创建java项目为了整个书籍的项目,我创建了一个工程,在这个工程里创建了每个章节的module。创建过程见随笔《待定》。创建完成后,项目结构如下:ps:对maven项目而言,classpath是java和resources两个根目录。 (2)调整pom配置

2018-01-04 16:43:28 138

原创 2017.12.11 线程池的简单实践

参考来自:慕课网 1.线程池的介绍创建线程开销大,线程池的作用就是预先建立好线程,等待任务派发。主要由两部分组成:线程+派发任务的queue。所有的线程都会从队列的头部获取任务。如果队列是空的,线程就会一直等待,直到有任务进来。使用方法:创建一个线程池,然后往队列中放任务。  2.重要参数 3.ThreadPoolExecutor  常用

2018-01-04 16:43:25 169

原创 2017.12.11SimpleDateFormat的线程安全性讨论

转载来自:http://blog.csdn.net/zxh87/article/details/19414885 1.结论DateFormat和SimpleDateFormat都不是线程安全的。在多线程环境中调用format()和parse()应处理线程安全的问题。 2.错误示例(1)错误示例1每次处理一个时间信息,都新建一个SimpleDateFormat实例,然后再

2018-01-04 16:43:23 128

原创 2017.12.07 postgresql使用with recursive完成迭代查询

1.表结构 2.需求查询某条记录的所有父亲节点,或者所有孩子节点。 3.向上查询(查询所有父亲节点) 注意,这里返回的记录包含自己。sql如下:1 WITH RECURSIVE res AS (2 SELECT t1.* FROM t_code as t1 3 WHERE t1.enable = 'true' and t1.id = '4'

2018-01-04 16:43:20 2167 1

原创 2017.11.30 tomcat远程调试

参考来自:http://blog.csdn.net/afgasdg/article/details/9236877 1.jpda有两种方式,一种是修改tomcat的catalina.bat来配置jpda相关的参数。一种是启动tomcat的时候设置jpda相关的参数。我采用的方式2,在tomcat的bin目录下执行如下命令来启动tomcat。1 catalina.bat jp

2018-01-04 16:43:17 112

原创 2017.11.21 查询某个字段为null的记录

注意,不使用 = null, 而是 is null。1 select fd_username, fd_tenantid, fd_validity from t_user WHERE fd_validity is NULL

2018-01-04 16:43:14 159

原创 2017.11.21 postgre更新时需要联合其他表的信息

现在需要更新t_user表,但是前台传来的参数 tenant_name 并不在这个表中,需要联合另一个表t_tenant。要注意的一点是:set后面的字段不要写成 u.fd_validity,否则会报错提示:t_user表中没有 u.fd_validity 字段。1 UPDATE t_user as u2 SET fd_validity = '2017-10-13 00:00:00

2018-01-04 16:43:11 378

原创 2017.11.15 linux软件安装管理(todo)

学习来自:http://www.imooc.com/learn/447 第一章 介绍第二章 软件包简介1.源码包2.二进制包(RPM包或系统默认包)脚本安装包其实是别人把软件安装的脚本写好了,实际上安装的还是源码包或者二进制包。 第三章 RPM命令1.RPM包的位置RPM包放在系统光盘中。 2.RPM包的命令规则用未安装包时,需要写包全名。用已安

2018-01-04 16:43:09 207

原创 2017.11.15 String、StringBuffer、StringBuilder的比较(todo)

参考来自:http://blog.csdn.net/jeffleo/article/details/521944331.速度一般来说,三者的速度是:StringBuilder > StringBuffer > String。但是,在String a = "how" + "old" + "are" + "you"。这种直接拼接的情况下,String速度最高。这是因为jvm的优化问题,jv

2018-01-04 16:43:04 115

原创 2017.11.15 hashmap的工作原理

参考来自:http://blog.csdn.net/jeffleo/article/details/54946424 一 hashMap的基本概念1.HashMap的定义public class HashMap extends AbstractMap implements Map, Cloneable, SerializableHashMap继承自A

2018-01-04 16:43:01 110

原创 2017.10.25 es-sql分页无效

1.问题描述使用es-sql聚合查询时,发现无法进行分页操作。 结果为16条: 当使用limit语法进行分页之后,发现并没有效果(以取5条记录为一页为例)。首先查询前5条记录:返回的记录如下图: 然后再查询后5条记录:返回的记录如下图:结果发现并没什么用- - 2.解决办法手动处理数据进行分页,可以参考lms_web项

2018-01-04 16:42:58 772

原创 2017.10.13 unable to open debugger port(127.0.0.1:10308)

参考来自:http://blog.csdn.net/qq_34360219/article/details/76169653 1.场景突然间IDEA就跑不起项目了,报了如下的错误:unable to open debugger port(127.0.0.1:10308) 因为只弹了这一个错误,所以以为我的debug的端口50812被占用了,但怎么查也查不到被占用,事实上并不

2018-01-04 16:42:55 24227

原创 2017.10.13 git提交时忽略不必要的文件或文件夹

参考来自:git学习六:git提交忽略不必要的文件或文件夹  1.应用场景创建maven项目,使用git提交,有时需要忽略不必要的文件或文件夹,只保留一些基本。例如如下截图,实际开发中我们只需提交:src,.gitignore,pom.xml而自己项目文件一般都保留,但是有些则不必要提交,如maven项目的target文件夹等等。 2.实现在项目中创建 .git

2018-01-04 16:42:52 204

原创 2017.9.15 postgresql批量插入造成冲突后执行更新

参考来自:https://stackoverflow.com/questions/40647600/postgresql-multi-value-upserts/46233907#46233907 1.before insert 2.insert sql 3.after insert 注意这里有两个容易出错的点:1.如果label字段不是必填的,要注意语

2018-01-04 16:42:49 2010

空空如也

空空如也

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

TA关注的人

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