java后端
文章平均质量分 80
java后端
名字不好奇
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
使用shiro来管理权限
前言 最近公司我负责的一个服务(spring-boot spring-could)需要在接口级别做权限控制,本来想着是在controller层加上注解,再通过切面(aop)来实现。后来发现网上有现成的框架spring shrio 以及spring security。某位大佬曾经说过:不要重复造轮子。本着这个原则去了解了这两个框架。 选型 简单看了一下两个框架最后选择了spring shrio。这里...原创 2019-10-08 10:15:28 · 343 阅读 · 0 评论 -
java多线程之ThreadPoolExecutor
title: “java多线程之ThreadPoolExecutor” date: 2019-03-06 tags: [“java”,“多线程”,“ThreadPool”] categories: 后台 构造函数 public ThreadPoolExecutor(int corePoolSize, int maximumPo...原创 2019-09-27 11:22:14 · 241 阅读 · 0 评论 -
java多线程基础
title: “java多线程基础” date: 2019-01-15 tags: [“java”,“多线程”] categories: 后台 等待池 假设一个线程a 调用了某个对象的wait方法,线程a就会释放该锁,进入到该对象的等待池中。等待池中的线程不会参与锁的竞争。 锁池 假设线程a已经拥有了某个对象的锁,而其他线程想要执行这个对象的某个同步代码块(syschronized)的代...原创 2019-09-27 11:16:01 · 226 阅读 · 0 评论 -
Celery - 分布式任务队列
title: “Celery-分布式任务队列” date: 2019-03-28 tags: [“python”,“celery”,“分布式”,“任务队列”] categories: 后台 Celery 是一个简单、灵活且可靠的,处理大量消息的分布式系统,并且提供维护这样一个系统的必需工具。 它是一个专注于实时处理的任务队列,同时也支持任务调度。 原理 在celery 中主要有4个角色,prod...原创 2019-09-27 11:13:31 · 286 阅读 · 1 评论 -
spring事务
title: spring事务 date: 2019-04-12 10:09:30 tags: [‘spring’,‘事务’] categories: 后台 spring事物传播机制 类型 描述 REQUIRED 支持当前事务,如果当前没有事务,就新建一个事物。这是最常见,默认的选择。 SUPPORTS 支持当前事务,如果当前没有事务,就以非事物方式执行。 MANDATO...原创 2019-09-27 11:24:01 · 145 阅读 · 0 评论 -
spring事务
title: spring事务 date: 2019-04-12 10:09:30 tags: [‘spring’,‘事务’] categories: 后台 spring事物传播机制 类型 描述 REQUIRED 支持当前事务,如果当前没有事务,就新建一个事物。这是最常见,默认的选择。 SUPPORTS 支持当前事务,如果当前没有事务,就以非事物方式执行。 MANDATO...原创 2019-09-27 11:18:21 · 153 阅读 · 0 评论 -
记一次mysql分页问题
title: “记一次mysql分页问题” date: 2019-09-15 tags: [“mysql”] categories: 后台 前言 都知道mysql分页使用limit这个关键字来进行的,但今天使用这个关键之进行分页点时候出现了点问题,有些记录没有查到,有些记录在上一页出现之后,翻下一页又出现了。 问题分析 单独使用limit这个关键字是没有问题的,加上order by 这个...原创 2019-09-27 11:11:25 · 205 阅读 · 0 评论 -
netty学习笔记
title: “netty学习笔记” date: 2019-04-03 tags: [“netty”] categories: 后台 Channel 底层网络传输 API 必须提供给应用 I/O操作的接口,如读,写,连接,绑定等等。 ChannelHandler 业务逻辑主要存活于此,主要子接口分别有ChannelInboundHandler,ChannelOutboundHandler...原创 2019-09-27 11:12:36 · 316 阅读 · 0 评论 -
spring Bean创建流程及扩展点
title: “spring Bean创建流程及扩展点” date: 2019-09-26 tags: [“spring”] categories: 后台 springBean创建流程 扩展点 ImportBeanDefinitionRegistrar 与ImportSelector 实现接口可以添加自定义的beanDefinition,例: @Component public cla...原创 2019-09-27 11:14:15 · 707 阅读 · 0 评论 -
es学习笔记-基础篇
title: es学习笔记-基础篇 date: 2019-07-31 10:09:30 tags: [‘es’,‘学习笔记’] categories: 后台 索引–保存相关数据的地方,实际上是指向一个或者多个物理分片的逻辑明名空间。 集群内的原理 es支持垂直扩容,水平扩容,但是垂直扩容是有极限的,真正的扩容能力来自于水平扩容(为集群添加更多的节点,并将负载及稳定性型分散到这些节点中) 一个运行...原创 2019-09-27 11:15:11 · 287 阅读 · 0 评论 -
java类加载器
title: “java classLoader” date: 2019-01-04 tags: java 在 Java 中,类的实例化流程分为两个部分:类的加载和类的实例化。类的加载又分为显式加载和隐式加载。大家使用 new 关键字创建类实例时,其实就隐式地包含了类的加载过程。对于类的显式加载来说,比较常用的是 Class.forName。其实,它们都是通过调用 ClassLoader ...原创 2019-09-27 11:19:05 · 171 阅读 · 0 评论 -
JanusGraph学习笔记
title: JanusGraph学习笔记 date: 2019-07-15 10:09:30 tags: [‘JanusGraph’,‘学习笔记’,‘图数据库’] categories: 后台 jansusgraph是一款分布式开源图数据库。 JanusGraph Server 使用默认的数据库及搜索引擎配置:bin/janusgraph.sh start 自定义存储及搜索引擎:bin/gre...原创 2019-09-27 11:20:33 · 2063 阅读 · 1 评论 -
权限管理设计思路
title: “权限管理设计思路” date: 2019-02-28 tags: [“模块设计”] categories: 后台 最近公司的运营管理系统开发完毕,有时间来写点东西,就先来总结一下我再权限系统的设计思路吧,希望能有点用。 权限管理分为 功能权限以及数据权限。 功能权限 功能权限是指某个用户使用某个功能的权限 ,简单的说就是调用某个接口的权限。 功能权限比较简单,主要要有三个实体: ...原创 2019-09-27 11:21:34 · 1237 阅读 · 0 评论 -
SpringBootTest整合PowerMock
依赖 <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-module-junit4</artifactId> <version>2.0.0-beta5</version> <scope>test</scope> </dependency> <dependency> <groupI原创 2020-06-28 15:13:16 · 1768 阅读 · 1 评论 -
在C++中 如何实现java中的Stream
本文介绍了Java 8 Stream API的核心思想及其C++实现方案。Stream API通过函数式编程方式处理集合数据,具有延迟计算、多线程并行处理等特点。其本质是通过层层注册回调函数将操作串联起来,形成类似生产消费模型的数据流。 文章重点分析了C++实现思路:定义一个关键函数consume,当流生产数据时调用回调函数。基于此实现了map、flatMap、filter、takeWhile等操作符,通过回调函数链式调用实现流式处理。该方案支持懒加载,并可扩展为并行流、文件流等场景。 这种实现方式保留了S原创 2026-01-12 14:56:33 · 1339 阅读 · 0 评论 -
并行流的使用偶现ConcurrentModificationException 异常
问题描述 今天排查线上偶现的问题,查日志是并发修改集合的异常: 问题代码: Map<String, Object> context = ContextUtil.getAll(); req.getLines().parallelStream().forEach(lineNo -> { ContextUtil.putAll(context); baseWave.occupyLine(warehouseCode, lineNo, req.getPlanDate()); });原创 2021-01-14 14:58:11 · 1351 阅读 · 8 评论 -
对java8 StreamAPI的扩展
java8的流(Stream API)已经提供了很强大的api接口了,满足日常开发的绝大部分需要,但是还是有些欠缺比如 java9才增加的两个api takeWhile dropWhile takeWhile() 方法使用一个断言作为参数,返回给定 Stream 的子集直到断言语句第一次返回 false。 **dropWhile()**与takeWhile相反,使用一个断言作为参数,直到断言语句第一次返回 true 才返回给定 Stream 的子集。 还有不爽的地方是同一个流只能执行一次流水线操作,完成后这原创 2020-07-09 15:33:34 · 713 阅读 · 0 评论 -
java8 Stream流水线实现分析
java8的Stream流水线,用起来很爽,但是他是怎么做到的呢。 Stream流水线记录用户的每一步操作步骤(map,filter等),当用户调用结束操作(Collect,reduce 等)时将用户之前记录的操作一并执行调。这里就有几个问题要解决了 如何记录用户操作 如何将用户操作串联起来 如何触发整个任务获取结果 记录串联用户操作 首先查看类图 查看源码我们可以看到 list.stream().map(x->x+“123”).filter(x->x.startsWith(“test”)原创 2020-07-03 16:54:54 · 2310 阅读 · 0 评论 -
java IO模型
阻塞 与 非阻塞 阻塞 请求收到后,请求被一直阻塞,直到条件满足(可读,可写等) 非阻塞 请求收到后,立即返回一个标志信息,而不会一直阻塞等待。一个通过 Selector选择器遍历channel获取满足条件的channel来处理。 同步 与 异步 同步 每个请求必须逐个地被处理,一个请求的处理会导致整个流程的暂时等待,这些事件无法并发地执行。用户线程发起I/O请求后需要等待或者轮询内核I/O操作完成后才能继续执行。nio是业务线程在io操作准备好得到通知,接着由该线程进行io操作,但是io本身还是同步的。原创 2020-06-17 16:08:58 · 259 阅读 · 0 评论 -
在踩坑中深入理解ThreadLocal
简介 ThreadLocal 是一创建线程局部变量的类,就是说这个类创建的变量值能被当前线程访问,其他线程无法访问和修改。 特点 Global:在当前线程中,任何位置能获取到ThreadLocal的值 Local:该线程的ThreadLocal只能被该线程访问,一般情况下其他线程访问不到(使用InheritableThreadLocal可以将某个线程的ThreadLocal值在其子线程创建时传递过...原创 2020-04-01 13:45:53 · 688 阅读 · 0 评论 -
java中枚举的定义及使用
枚举的定义 当类的对象时有限且固定的,如季节类,它只有春夏秋冬4个对象这种实例有限且固定的类,在 Java 中被称为枚举类; 定义: public enum ElementType { NODE, EDGE } 这是java中的语法糖实际上会被编译成这样: public class ElementType extends Enum<ElementType>{ } 所有的枚举...原创 2020-03-02 14:38:37 · 1030 阅读 · 0 评论 -
异步编排CompletableFuture
特点 在传统future上,只能异步调用get方法,获取计算结果,能做的事情十分有限,比如想要异步执行完任务之后再去执行另一个任务。传统future做这个事情就显得力不从心了。这就是CompletebleFuture解决的问题。CompletebleFuture提供了丰富的接口用来添加异步任务的回调函数。 简单使用 创建异步任务 创建异步任务主要有以下三种 CompletableFuture.su...原创 2019-11-26 17:27:26 · 1641 阅读 · 0 评论 -
Java程序优雅的退出
背景 最近收到一个新需求,需要充kafka队列中那消息解析写到es中。要求不能漏写数据,或者重复写数据。‘ ##问题 如果程序中途需要手动停止,就需要把已经从kafka中拿到的数据,写进了es 才能停止程序。否则就会漏写数据或者重复写入数据 解决 钩子函数 ShutdownHook只是一个已初始化但为启动的线程。当JVM开始执行关闭序列时,它才开始已某种随机程序注册和并行执行shutdown ho...原创 2019-10-11 17:19:15 · 627 阅读 · 0 评论
分享