摘要:
如图,是一种通用的用户权限模型。一般情况下会有5张表,分别是:用户表,角色表,权限表,用户角色关系表,角色权限对应表。 一般,资源分配时是基于角色的(即,资源访问权限赋给角色,用户通过角色进而拥有权限);而访问资源的时候是基于资源权限去进行授权判断的。 Spring Security和Apache 阅读全文
摘要:
当我们使用@Cacheable注解的时候会将返回的对象缓存起来,我们会发现默认缓存的值是二进制的,不方便查看,为此我们自定义序列化配置,改成JSON格式的 配置如下: pom.xml application.yml RedisConfig.java UserServiceImpl.java 反复看文 阅读全文
摘要:
秒杀的场景有很多,比如:抢购、抢票、抢红包等等。总之,就是在极短时间内有大量的请求。 我们都知道,这种系统设计的大方向就是限流,即通过层层过滤,最终只让相对较少的请求进入到核心业务处理层。 这里不谈秒杀设计,不谈使用队列等使请求串行化,就谈下怎么用锁来保证数据正确,就是已经到减库存那一步了,在这一步 阅读全文
摘要:
1 2 (function (window, document, undefined) { 3 var hearts = []; 4 window.requestAnimationFrame = (function () { 5 return window.requestAnimationFrame || window.webkitRequestAni... 阅读全文
摘要:
首先,看一段真实的配置 1. Appender 1.1. ConsoleAppender 输出到控制台 1.2. FileAppender 输出到文件 1.3. RollingFileAppender RollingFileAppender继承自FileAppender,并有滚动日志文件的能力。 R 阅读全文
摘要:
目的: 统一日志输出格式 思路: 1、针对不同的调用场景定义不同的注解,目前想的是接口层和服务层。 2、我设想的接口层和服务层的区别在于: (1)接口层可以打印客户端IP,而服务层不需要 (2)接口层的异常需要统一处理并返回,而服务层的异常只需要向上抛出即可 3、就像Spring中的@Control 阅读全文
摘要:
Aspect Oriented Programming with Spring 1. 简介 AOP是与OOP不同的一种程序结构。在OOP编程中,模块的单位是class(类);然而,在AOP编程中模块的单位是aspect(切面)。也就是说,OOP关注的是类,而AOP关注的是切面。 Spring AOP 阅读全文
摘要:
简介 从JDK1.7开始,Java提供Fork/Join框架用于并行执行任务,它的思想就是讲一个大任务分割成若干小任务,最终汇总每个小任务的结果得到这个大任务的结果。 这种思想和MapReduce很像(input --> split --> map --> reduce --> output) 主要 阅读全文
摘要:
如何合理地估算线程池大小? 这个问题虽然看起来很小,却并不那么容易回答。大家如果有更好的方法欢迎赐教,先来一个天真的估算方法:假设要求一个系统的TPS(Transaction Per Second或者Task Per Second)至少为20,然后假设每个Transaction由一个线程完成,继续假 阅读全文
摘要:
Java API 下载方法 https://www.oracle.com/index.html https://www.oracle.com/java/technologies/java-se.html http://www.oracle.com/technetwork/java/javase/do 阅读全文