梧桐和风的博客

岁月如旅行,好坏是风景

多级选择组件解决实践

问题描述 这里的多级选择组件问题,指的是存在一个多级的选择组件,当点击某个节点时,该节点及其下的所有节点都要选中,若该节点并列的所有兄弟节点都已选中,则其父节点也要勾选,依此到最顶端节点。反选也类似逻辑。 这个问题也符合平日的认知习惯。如下图所示: 如点新华区,则其下所有街道都要选中,再点击桥西区,桥西区下的街道要选中,同时石家庄市这个节点要选中。若再点击廊坊市这个节点,则整...

java代理模式与JDK代理

前言 代理模式是很常用的设计模式之一,一般可分为静态代理和动态代理两类。java利用反射也对动态代理提供了支持。今天我们就来学习学习。 1. 定义 给某一个对象提供一个代理,并由代理对象控制对原对象的引用,称为代理模式。它是一种对象结构型模式。 即可理解为,某个对象实例(记为Subject)不方便直接引用,我们就提供一个代理实例(记为Proxy),让这个代理实例去调用实例对象...

ReentrantLock原理探究(二)

前言 上篇ReentrantLock原理探究(一)介绍了ReentrantLock类的使用说明,详细解析了关于非公平锁的lock()过程。这篇我们继续分析。 三、源码解析 2.unlock()方法 公平锁与非公平锁的unlock()方法相同,就不用区别了。unlock()方法调用了release()方法。 public final boolean release(int arg...

ReentrantLock原理探究(一)

前言 ReentrantLock类是synchronized语义的替代品,可以实现与其相同的功能,了解其实现原理对并发编程无疑是很有帮助的。其次,ReentrantLock 的实现基础AQS(AbstractQueuedSynchronizer)也是Java并发编程中相当重要的一个类,所以无论如何,我们都要了解一番。 一. 用法及概念 1. 用法 ReentrantLock(可重入锁...

java获取方法参数名的若干实践

文章首发于我的个人博客网站梧桐和风的博客,欢迎关注。 前言 我们知道java可以通过反射得到方法名、参数类型等信息。但我们似乎不能直接得到方法的参数名。而在一些场景中,比如构建自己的MVC框架时,我们也想像Spring MVC一样,根据参数名获取用户传来的数据。下面就来总结一下,都有哪些方法可以获得方法的参数名。 1. 使用java8 自java8开始,可以直接通过反射得到方法...

java多线程之线程通信

在多线程机制中,线程之间需要传输信息。一般有以下几种通信机制: 共享对象:通过在共享对象中设置信号量,多个线程通过读取、修改该信号量来通信。 wait/notify()方法:线程之间通过调用wait()、notify()方法实现线程等待、唤醒状态,从而达到线程通信的目的。 接下来我们分别看看这两种方法: 通过共享对象通信 在共享对象中设置信号量是最简单也是最常用的线程通信...

Kibana 5.4简明教程

Kibana 5.4 官方文档中文版

本文翻译自Kibana5.4版本官方教程。文章首发于我的个人博客网站梧桐和风的博客,欢迎关注。 开始 想要得到一些关于Kibana的实际经验吗,下面教程会叫你怎样做。 向Elasticsearch导入一些样本数据 定义一个索引模式 用Discover搜索样本数据 为样本数据建立visualizations【可视化图表组件】 将可视化数据汇集到Dashboa...

latke源码解析(二)Ioc部分

上篇 Latke源码解析(一)Servlet部分讲解了latke有关web 请求的servlet部分,这次深入了解一下它的Ioc部分内容。 备注: 本人水平有限,若发现文章有误,请积极留言。 一、从监听器开始 同Spring一样,latke通过配置监听器初始化bean。在latke-demo的web.xml监听器部分如下 <listener> <li...

Servlet工作机制解析

Servlet工作机制解析 Servlet是java Web技术的基础,也是学习Web 框架原理绕不过去的部分。本章我们来学习学习。 1. Servlet和Servlet容器 什么时servlet?从概念上来说是这样的: Servlet是用java编写,遵守java servlet API的一些类,原则上这些类可以响应任何类型的请求,我们一般用它来响应web方面的请求。 说...

latke源码解析(一)Servlet部分

最近研究java Web的MVC,发现一款轻量级的框架,官网描述为类似 Spring 但以 JSON 为主的 Java Web 框架。具体详情见latke github。由于此框架的mvc部分基于Servlet且是对servlet的轻量封装,相对Spring MVC较为简单,就以此框架来学习MVC。 官网提供了一个demo,在latke-demo github 基于Servlet 同Sp...