自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis(spring data redis) 发布订阅 pub/sub

Spring Data为Redis提供了专用的消息集成,功能类似,并命名为Spring Framework中的JMS集成。Redis消息大致可分为两个功能区域: 发布或生产消息 订阅或消费消息 通常被称为发布/订阅模式。RedisTemplate类是用来生产消息的。对于类似于Java EE的消息驱动bean形式的异步接收,Spring Data提供了一个专用的消息监听器容器...

2019-06-30 21:18:31 562

原创 drools 复杂事件处理Complex Event Processing

1 Drools FusionDrools Fusion是负责将事件处理功能添加到平台的模块。2 事件语义event是呈现出几个显着特点的fact:通常是不可变的:因为,通过前面讨论的定义,事件是应用程序域中状态变化的记录,即已经发生的事情的记录,并且过去不能“改变”,事件是不可变的。此约束是开发多个优化和事件生命周期规范的重要要求。这并不意味着表示对象的Java对象必须是不可变的...

2019-06-27 19:21:25 3133 2

原创 drools query

查询是在工作内存中搜索符合所述条件的事实的简单方法。因此,它只包含规则的LHS结构,因此既不指定“when”也不指定“then”。查询具有一组可选参数,每个参数都可以选择键入。如果未给出类型,则假定为Object类型。Drools引擎将尝试根据需要强制执行值。查询名称是KieBase的全局名称;所以不要将相同名称的查询添加到同一RuleBase的不同包中。要返回结果,请使用ksession....

2019-06-27 15:23:04 558

原创 drools Rule (五) 关于自动装箱和原始类型的注记 A Note on Auto-boxing and Primitive Types

Drools尝试以其原始或对象包装形式保留数字,因此在代码块或表达式中使用时绑定到int原语的变量将不再需要手动取消装箱;与Drools 3.0不同,所有原语都是自动装箱的,需要手动拆箱。绑定到对象包装器的变量将保留为对象;在这种情况下,应用现有的JDK 1.5和JDK 5规则来处理自动装箱和拆箱。在评估字段约束时,系统会尝试将其中一个值强制转换为可比较的格式;所以原语与对象包装器相当。...

2019-06-27 15:09:29 103

原创 drools Rule (四) 有条件命名的后果Conditional named consequences

有时,对每个规则具有单一结果的约束可能会有所限制,并导致冗长且难以维持的重复,如下例所示:rule "Give 10% discount to customers older than 60"when $customer : Customer( age > 60 )then modify($customer) { setDiscount( 0.1 ) };end...

2019-06-27 15:06:54 366

原创 drools rule (三) RHS语法详解

1 用法右手边(RHS)是规则的后果或行动部分的通用名称;此部分应包含要执行的操作列表。在规则的RHS中使用命令式或条件式代码是不好的做法;作为一项规则应该是原子性的 - “当这个,然后做这个”,而不是“当这个,也许这样做”。规则的RHS部分也应保持较小,从而保持其声明性和可读性。如果您发现在RHS中需要命令式和/或条件代码,那么您可能应该将该规则分解为多个规则。RHS的主要目的是插入,删...

2019-06-27 14:49:54 2209

原创 drools rule (二) LHS语法详解

1.什么是LHS?左手边(LHS)是规则的条件部分的通用名称。它由零个或多个条件元素组成。如果LHS为空,则它将被视为始终为true的条件元素,并且在创建新的WorkingMemory会话时将激活一次。rule "no CEs"when // emptythen ... // actions (executed once)end// 上面的rule可以用下面的写...

2019-06-27 14:14:35 6567 2

原创 drools rule (一) 属性

规则属性提供了一种影响规则行为的声明方式。有些很简单,有些则是规则流等复杂子系统的一部分。要从Drools中获得最大收益,您应该确保对每个属性有正确的理解。属性 类型 默认值 涵义 no-loop Boolean false 当规则的结果修改了fact时,它可能导致规则再次激活,从而导致无限循环。将no-loop设置为true将跳过为具有当...

2019-06-26 14:34:58 798

翻译 drools kmodule属性( kbase属性,ksession属性)

kmodule.xml示例:<?xml version="1.0" encoding="UTF-8"?><kmodule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.drools.org/xsd/kmodule"> <configur...

2019-06-24 20:58:08 2677

原创 Redis 主从, 哨兵配置

Redis主从配置1.启动一个主redis 不用做任何配置2.启动一个从redis,有两种方式。a.在conf中配置slaveof <masterip> <masterport> ,masterip为主库ip,masterport为主库端口;b.在启动命令中添加 --slaverof <masterip> <masterport>Red...

2019-06-16 22:49:31 403

原创 java.util.concurrent学习(十) ReadWriteLock,ReentrantReadWriteLock

Lock框架ReadWriteLockReadWriteLock是读写锁的顶端接口,定义了获取读锁和写锁的方法。ReentrantReadWriteLock锁的实现基础SyncReentrantReadWriteLock是ReadWriteLock的默认实现类,其内部定义了一个类似于ReentrantLock中的Sync的抽象类,不同的是,ReentrantReadWrite...

2019-06-15 23:58:40 202

原创 jdk1.8新特性学习(六)新增的时间框架类结构关系图,类转换关系图,时间格式化关系图

笔者把几个重要的类之间的关系画了一下,从图中可以直到他们之间的继承实现关系:本篇文章暂且不讨论实现原理,仅仅讨论新的时间框架的使用方法以及各个类之间的转换。下面是转换关系图:Date->instant->LocalDateTime->DateTimeFormat时间格式化与解析关系图:...

2019-06-09 22:37:07 340

原创 jdk1.8新特性学习(五)lambda表达式 ->和方法引用::

Lambda表达式笔者认为,Lambda是jdk1.8新特性中最让人兴奋的一个新特性了,大幅度的简化了代码开发。这一特性配合Stream操作或者函数式接口可以快速完成代码,举个列子:1.函数式接口使用lambda public R testApply(T t, Function<T,R> function){ return function.apply...

2019-06-09 18:31:24 583

原创 java 匿名内部类

匿名内部类,从名字大概能猜到这是一个怎样的类,首先他没有名称,其次他是一个内部类。既然没有定义名称,那也就是说这个类我们没有在程序机构中定义,这种类一般是抽象类或者接口的内部类。当我们需要使用抽象类或者接口的实现类,而又不想创建这个类的时候,便可以使用匿名内部类。举个例子://定义一个接口public interface Test { boolean test(String st...

2019-06-09 17:56:19 83

原创 jdk1.8新特性学习(四)函数式接口

函数式接口函数式接口是仅包含一个抽象方法的接口,也可以实现一个或者多个默认方法和静态方法。创建函数式接口时,可以使用注解@FunctionalInterface来注解接口,这个注解会帮助我们规范函数式接口。java中提供了四个核心函数式接口:1.Function函数Function函数提供了一个apply抽象方法,该方法接收一个参数,并返回一个结果。除此之外,Function还实现了两...

2019-06-09 16:15:59 391

原创 jdk1.8新特性学习(三)default

在jdk1.8中,接口可以实现一个默认方法,接口在继承时可以继承默认方法,任何实现接口的类实例都可以调用默认方法。用代码实践一下。1.创建一个父类接口,定义一个默认方法。public interface ParentService { default void test(){ System.out.println("ParentTest"); }}...

2019-06-08 23:19:21 169

原创 java.util.concurrent学习(九) Lock,ReentrantLock

Lock框架LockLock是java.util.concurrent.locks包提供的一个锁操作接口,相比于synchronized只能定义实例域和Class域的代码块,该接口提供了更灵活的方法,在代码层面提供了锁的机制,笔者将会在另一篇文章说明sychronized和Lock的区别。我们来看看都定义了什么接口,下面提到的获取到锁的对象就是一个Lock实例,用同一个lock实例...

2019-06-08 20:58:44 214

原创 java.util.concurrent学习(八) AbstractQueuedSynchronizer 内部类Node ,ConditionObject

NodeNode是一个节点类,是AbstractQueuedSynchronizer实现队列的基础单位,内部定义了volatile Node prev、volatile Node next分别指向前一个节点和后一个节点,这样便实现了双向链表或者叫双向队列,而每一个节点都有一个状态属性waitStatus,状态包括了0、CANSELLED、SIGNAL、CONDITION、PROPAGATE五...

2019-06-08 17:27:25 423

原创 java.util.concurrent学习(七) AbstractQueuedSynchronizer

AbstractQueuedSynchronizer框架AbstractOwnableSynchronizerAbstractOwnableSynchronizer是一个线程持有者同步器,它定义了一个transient变量Thread exclusiveOwnerThread来表示一个排他的线程,仅提供了设置和获取该变量的方法。通过设置exclusiveOwnerThread来表示...

2019-06-02 23:13:08 260

原创 java原生锁 synchronized

synchronized是java语言的关键字。周志明在《深入理解java虚拟机.JVM高级特性与最佳实践》中曾经对synchronized的实现原理进行了详细的说明。笔者在这里引入一些来进行说明。synchronized关键字经过编译后,会在同步块的前后分别形成monitorenter和monitorexit两个字节码指令,这两个字节码都需要一个reference类型的参数来指名要锁定和解锁...

2019-06-02 18:12:41 634

原创 java.util.concurrent学习(六) AbstractExecutorService

AbstractExecutorService是ExecutorService的默认实现类,通过新建FutureTask来实现。AbstractExecutorService提供了两个由protected修饰的方法来新建任务,这两个方法分别是: protected <T> RunnableFuture<T> newTaskFor(Runnable runnable,...

2019-06-02 15:59:11 323

原创 java.util.concurrent学习(五) CompletionService,ExecutorCompletionService 代码认识

CompletionServiceCompletionService,一个顶层接口,主要用于将线程池中已完成的线程区分出来,从而提高批量执行任务的效率。该接口设计了五个方法:1.submit(Callable<V> task);提交Callable任务2.submit(Runnable task, V result);提交Runnable任务。3.take();获取下一...

2019-06-02 15:30:06 725

原创 java.util.concurrent学习(四) FutureTask

FutureTask是一个实现了RunnableFuture的任务类,而RunnableFuture又同时继承了Runable,Future接口,那么这就说明,FutureTask同时具备了Runable,Future的属性。FutureTask生命周期FutureTask内部维护了Callable<V> callable 需要执行的任务,Object outcome ...

2019-06-02 14:14:39 782

原创 java.util.concurrent学习(三) Future

Future是一个定义了包含一个任务取消以及返回结果获取等方法的接口,是所有java.util.concurrent包下实现任务的最基层的接口。他定义的方法有:1.boolean cancel(boolean mayInterruptIfRunning); 取消任务的执行,当参数mayInterruptIfRunning为false时,取消还没有开始执行的任务,已经开始执行的任务继续执行。当参...

2019-06-02 12:13:46 304

原创 java.util.concurrent学习(二) ExecutorService

ExecutorServiceExecturoService是对Executor的扩展接口,额外定义了线程池生面周期的相关方法。1.void shutdown(); 有序的关闭线程池,该方法只保证已提交的正在执行的任务执行完成,并不保证所有的已提交的任务都会执行完成,并且在这期间不再接受新的任务。多次调用并不会有额外的效果。2. List<Runnable> shutdo...

2019-06-01 18:34:16 223

空空如也

空空如也

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

TA关注的人

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