- 博客(8)
- 收藏
- 关注
原创 mybatis整合数据权限
现在很多企业级应用都需要拦截数据权限, 只有配置了相应数据权限的人才能看到该数据关于数据权限的实现, 个人想了两种实现方式第一种是基于AOP, 配置相应的注解, 在切面中将数据权限的参数值强制设置到请求参数中去, 然后dao层利用mybatis的动态sql, 将权限值拼接进去, 该方案有前提条件, 数据权限控制的字段必须放到基类中, 其他的对象要继承该基类, Mapper.xml必须抽取一个公...
2019-05-18 12:54:42
1363
原创 基于服务器端保存用户的查询参数
基于服务器端保存用户的查询参数最近公司项目有一个新的需求, 希望用户在PC查询的参数能够同步更新到APP端, 避免让用户在PC和APP端重复输入查询条件, 基于项目是前后端分离, APP和PC的请求参数都是一样的且都是POST请求, 因此考虑采用拦截器的方式拦截获取POST请求中的请求体, 同时前端请求后台时, 统一在Header中加入当前页面名称(pageName)的参数, 以用户Sessio...
2019-05-04 18:06:46
187
原创 阿里开源Easy-Excel单元格样式调整
阿里开源Easy-Excel单元格样式调整最近项目需要导出Excel, 而且Excel的表头不固定, 还涉及表头合并和样式调整, 以及某些列需要千位分隔符和百分比, 在Github上找到了阿里开源的Easy-Excel引入依赖 <dependency> <groupId>com.alibaba</groupId> <a...
2019-04-06 13:08:36
11701
原创 Springboot + Mybatis-Plus + Sharding-JDBC
Springboot + Mybatis-Plus + Sharding-JDBC现在开源的分库分表方案中, 常用的就是MyCat和Sharding-JDBC, MyCat需要有专门的服务器, 通常要的配置也比较高, 公司之前就是专门部署了两台64G的MyCat服务器, 后面为了节省资源, 逐步切换成Sharding-JDBC这里主要介绍Springboot, Mybatis-Plus, Sh...
2019-03-16 16:05:13
3385
原创 基于注解的方法缓存
基于注解的方法缓存在大数据项目中, 查询impala或hive非常耗时耗资源, 所以, 对于同一方法相同参数的请求, 应该保存到缓存中, 而不是每次都去查数据库, 方法的返回值可以保存到Mongodb或redis中具体实现:@MethodCache注解@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public...
2019-03-16 13:06:27
299
原创 基于注解的方式实现分布式锁
基于注解的方式实现分布式锁关于分布式锁的实现由两种基于redis基于zookeeper为了方便分布式锁的使用, 基于注解的方式抽取成公用组件DisLock注解/** * 分布式锁的注解, 通过指定key作为分布式锁的key * * @author wang.js on 2019/1/29. * @version 1.0 */@Retention(RetentionPol...
2019-03-09 13:58:01
866
原创 分布式id生成系统--总结
分布式id生成系统–总结UUID简单易用, 但是做数据库分片的时候, UUID不太适合作为分片键详见Leaf——美团点评分布式ID生成系统snowflake性能非常高, 缺点是如果时间回拨或者各个实例节点时间不一致, 容易出错详见Leaf——美团点评分布式ID生成系统美团开源的Leaf支持多种不同模式的生成策略号段模式该模式需要建DB表, 需要有专门的服务来提供获取id...
2019-03-09 13:18:31
135
原创 雪花算法中机器id保证全局唯一
雪花算法中机器id保证全局唯一关于分布式id的生成系统, 美团技术团队之前已经有写过一篇相关的文章, 详见Leaf——美团点评分布式ID生成系统通常在生产中会用Twitter开源的雪花算法来生成分布式主键雪花算法中的核心就是机器id和数据中心id, 通常来说数据中心id可以在配置文件中配置, 通常一个服务集群可以共用一个配置文件, 而机器id如果也放在配置文件中维护的话, 每个应用就需要一...
2019-03-09 12:52:02
5242
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人