- 博客(116)
- 资源 (6)
- 收藏
- 关注
原创 Drools规则引擎视频地址
Drools规则引擎第一讲课程内容:Drools概述、应用场景、发展趋势、入门小例子等https://www.bilibili.com/video/av64340462
2019-08-19 09:29:43 2194 2
原创 《Drools规则引擎技术指南》 已经正式上架
《Drools规则引擎技术指南》 已经正式上架,国内首本Drools规则引擎中文教程,感谢您的支持,从基础入门到高级应用本书中都有说明,为我国规则引擎方面填补了空白,为国内IT事业尽微薄之力。以下是购买地址:京东自营:https://item.jd.com/12650530.html当当自营:http://product.dangdang.com/27896937.html...
2019-07-10 14:37:22 5900 7
原创 Drools7中文教程 文档 指南
Drools7<------点击左侧文字 即可下载开源教程676219749是博主创建的讨论群,期待您的加入 上面有Drools7+sql+SpringBoot的实战项目哦。下图为群文件内容,好的资料要学会共享,,别着急,往下看---------------------注意:下面高能,以下内容均为VIP会员可享受的特权------- VIP群欢迎 你的加入注意啦 注意啦...
2019-03-29 10:53:00 33953 29
原创 Drools动态规则
动态规则,是做规则引擎最想知道的问题,小编也加过一些群,大部分的人都喜欢问这样的问题。规则只能写在文件里嘛规则引擎能做什么规则可动态配置嘛在项目中使用规则引擎,业务人员怎么用呢?规则变化了怎样才能不重启项目就能用呢......总是一脸懵逼的在研究着...小编今天就给大家分析说明一下:首先规则可以写法有很多,像规则决策表就是写在Excel中的,规则文件,重点是还可以以字符串的方式编写,聪明的读者是不...
2018-04-26 16:29:55 8501
原创 享元模式(Flyweight Pattern)
运用共享技术有效地支持大量细粒度的对象。在有大量对象时,有可能会造成内存溢出,我们把其中共同的部分抽象出来,如果有相同的业务请求,直接返回在内存中已有的对象,避免重新创建。1、系统中有大量对象。2、这些对象消耗大量内存。3、这些对象的状态大部分可以外部化。4、这些对象可以按照内蕴状态分为很多组,当把外蕴对象从对象中剔除出来时,每一组对象都可以用一个对象来代替。5、系统不依赖于这些对象身份,这些对象是不可分辨的。用唯一标识码判断,如果在内存中有,则返回这个唯一标识码所标识的对象。
2024-10-21 14:03:44 468
原创 外观模式(Facade Pattern)
为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。降低访问复杂系统的内部子系统时的复杂度,简化客户端之间的接口1、客户端不需要知道系统内部的复杂联系,整个系统只需提供一个"接待员"即可。2、定义系统的入口客户端不与系统耦合,外观类与系统耦合。在客户端和复杂系统之间再加一层,这一层将调用顺序、依赖关系等处理好。1、去医院看病,可能要去挂号、门诊、划价、取药,让患者或患者家属觉得很复杂,如果有提供接待人员,只让接待人员来处理,就很方便。
2024-10-21 14:00:41 232
原创 装饰器模式(Decorator Pattern)
动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。在不想增加很多子类的情况下扩展类。装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。多层装饰比较复杂。1、扩展一个类的功能。2、动态增加功能,动态撤销。可代替继承。
2024-10-18 16:17:38 445
原创 组合模式(Composite Pattern)
将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。它在我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。您想表示对象的部分-整体层次结构(树形结构)。您希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。树枝和叶子实现统一接口,树枝内部组合该接口。树枝内部组合该接口,并且含有内部属性 List,里面放 Component。
2024-10-18 16:14:32 719
原创 到底什么是规则引擎?
我对Mark Proctor大师这段话理解是,Drools是规则引擎,更准确的是说它是一个生产规则的系统,其中“Production Rule” 源于一种“Formal grammar”,而规则引擎被认为是一种精确描述形式语言的抽象结构,简单的理解为我们在代码上描述的一组规则。随着时代的进步,发展趋势,规则引擎也成为了很大部分低代码平台的核心,甚至你在搜索规则引擎关键字时,都会附带这低代码的字样。Drools规则引擎是有一定学习成本的,虽说是它的底层是Java,但它有自己独特的语法。Drools博客专栏。
2024-10-16 09:34:09 1525
原创 过滤器模式(Filter Pattern)
结合多个标准来获得单一标准。java8里面有典型的应用方法就是分组操作,可以根据指定的指标进行分组筛选灵活性:通过定义不同的过滤器实现类和不同的谓词(Predicate),我们可以灵活地对数据集合进行过滤,从而得到符合不同条件的子集可扩展性:在实现过滤器模式时,我们可以添加、组合和重用不同的过滤器,从而轻松扩展过滤器的功能简单性:过滤器模式非常简单且易于理解。它将数据集合和过滤器分开,使得代码更加清晰和易于维护性能问题:当数据集合非常大时,过滤器模式可能会导致性能问题。
2024-10-16 09:26:28 648
原创 桥接模式(BridgePattern)
将抽象部分与实现部分分离,使它们都可以独立的变化。在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活。实现系统可能有多个角度分类,每一种角度都可能变化。把这种多角度分类分离出来,让它们独立变化,减少它们之间耦合。抽象类依赖实现类。比如猪八戒从天蓬元帅转世投胎到猪,转世投胎的机制将尘世划分为两个等级,即:灵魂和肉体,前者相当于抽象化,后者相当于实现化。生灵通过功能的委派,调用肉体对象的功能,使得生灵可以动态地选择。
2024-10-16 09:18:38 691
原创 适配器模式(Adapter Pattern)
将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。系统需要使用现有的类,而此类的接口不符合系统的需要。想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作,这些源类不一定有一致的接口。通过接口转换,将一个类插入另一个类系中。
2024-10-15 16:56:00 661
原创 原型模式(Prototype Pattern)
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。在运行期建立和删除原型。当一个系统应该独立于它的产品创建,构成和表示时。当要实例化的类是在运行时刻指定时,例如,通过动态装载。为了避免创建一个与产品类层次平行的工厂类层次时。当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些。利用已有的一个原型对象,快速地生成和原型对象一样的实例。实现克隆操作,在。
2024-10-15 16:51:35 689
原创 建造者模式(Builder Pattern)
将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定一些基本部件不会变,而其组合经常变化的时候将变与不变分离开建造者:创建和提供实例,导演:管理建造出来的实例的依赖关系1、去肯德基,汉堡、可乐、薯条、炸鸡翅等是不变的,而其组合是经常变化的,生成出所谓的"套餐"。
2024-10-14 10:29:43 743
原创 单例模式(Singleton Pattern)
保证一个类仅有一个实例,并提供一个访问它的全局访问点。一个全局使用的类频繁地创建与销毁。当您想控制实例数目,节省系统资源的时候。判断系统是否已经有这个单例,如果有则返回,如果没有则创建。构造函数是私有的。一个班级只有一个班主任;Windows 是多进程多线程的,在操作一个文件的时候,就不可避免地出现多个进程或线程同时操作一个文件的现象,所以所有文件的处理必须通过唯一的实例来进行;一些设备管理器常常设计为单例模式,比如一个电脑有两台打印机,在输出的时候就要处理不能两台打印机打印同一个文件。
2024-10-14 10:22:52 954
原创 抽象工厂模式(Abstract Factory Pattern)
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。主要解决接口选择的问题。系统的产品有多于一个的产品族,而系统只消费其中某一族的产品。在一个产品族里面,定义多个产品。在一个工厂里聚合多个同类产品。工作了,为了参加一些聚会,肯定有两套或多套衣服吧,比如说有商务装(成套,一系列具体产品)、时尚装(成套,一系列具体产品),甚至对于一个家庭来说,可能有商务女装、商务男装、时尚女装、时尚男装,这些也都是成套的,即一系列具体产品。
2024-10-08 11:40:51 737
原创 工厂模式(Factory Pattern)
定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决接口选择的问题。我们明确地计划不同条件下创建不同实例时。让其子类实现工厂接口,返回的也是一个抽象的产品。创建过程在其子类执行。您需要一辆汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现。Hibernate 换数据库只需换方言和驱动就可以。
2024-10-08 10:42:39 1115
原创 Java设计模式概述
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。
2024-09-30 17:30:23 1030
原创 MyBatis 面试题11-27
Mybatis 作为半自动 ORM 工具,提供了更大的灵活性和控制能力,但也要求开发者具备更多的技术知识和手动操作。而全自动的 ORM 工具则试图通过减少手动配置的需求,使开发者能够更快速地构建应用程序,但可能会牺牲一些灵活性和控制力。选择哪种类型的 ORM 工具,取决于具体项目的需求和团队的技能水平。19、一对一、一对多的关联查询在关系型数据库中,实体之间的关系通常可以分为一对一(One-to-One)和一对多(One-to-Many)两种关联关系。
2024-09-14 16:28:43 1180
原创 MyBatis 面试题1-10
Mapper接口的工作原理是JDK动态代理,Mybatis运行时会使用JDK动态代理为Mapper接口生成代理对象proxy,代理对象会拦截接口方法,转而执行MapperStatement所代表的sql,然后将sql执行结果返回。分页插件的基本原理是使用Mybatis提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执行的sql,然后重写sql,根据dialect方言,添加对应的物理分页语句和物理分页参数。2、对性能的要求很高,或者需求变化较多的项目,如互联网项目,MyBatis将是不错的选择。
2024-08-29 14:18:20 713
原创 到底什么是规则引擎?
我对Mark Proctor大师这段话理解是,Drools是规则引擎,更准确的是说它是一个生产规则的系统,其中“Production Rule” 源于一种“Formal grammar”,而规则引擎被认为是一种精确描述形式语言的抽象结构,简单的理解为我们在代码上描述的一组规则。随着时代的进步,发展趋势,规则引擎也成为了很大部分低代码平台的核心,甚至你在搜索规则引擎关键字时,都会附带这低代码的字样。Drools规则引擎是有一定学习成本的,虽说是它的底层是Java,但它有自己独特的语法。Drools博客专栏。
2024-08-09 15:30:00 845
原创 五年回顾:感恩与成长
这些问题将成为我未来努力改进的方向,同时激励着我写出更优秀的作品,我非常希望可以通过我的努力可以降低Drools规则引擎的学习成本,也期望有更多热爱Drools规则引擎的技术专员加入到我新作品的创作中来,一同为国内Drools规则引擎的使用尽一份力。
2024-08-09 09:27:54 228
原创 Drools关于session的不同方法
这里小编就针对session而言,单独拿出一个章节来讲session,因为这个在实际应用中是非常重要的。定义了一个像前一个示例中的一个kmodule.xml,现在可以使用他们的名字从KieContainer中简单地检索KieBase和KieSessions。从KieContainer抢走KieBases和KieSessionsKieServices kieServices = KieSe...
2019-06-11 13:40:15 4097
原创 SpringBoot整合Drools7.0
SpringBoot相信大家都很熟悉了,这里小编就再进行讲述了,由于现在用Springboot的人越来越多,当然小编也不会错过机会进行学习,这个章节里,小编就带领着大家,学习如何Springboot与Drools7.0整合。小编在之前的章节中有讲过与Spring,与其说整合,还不如说只是将这两个不相关的工具放到一个项目里,SpringBoot只是处理本职工作,而Drools同样也是如此,这里小...
2019-03-12 09:30:59 11867 10
原创 不同 KieHelper 不同Kiesession有状态
注 不同KieHelper肯定是不同的StatelessKiesession StatelessKiesession线程创建请看如下代码:package com.droolstest.dynamicRuleThread;import com.droolstest.Person;import com.droolstest.School;import org.kie.api.i...
2019-03-04 15:34:20 895
原创 不同 KieHelper 不同StatelessKiesession无状态
注 不同KieHelper肯定是不同的StatelessKiesession 但线程中试用则是唯一 只创建一次的不做修改的StatelessKiesession请看如下代码:package com.droolstest.dynamicRuleThread;import com.droolstest.Person;import com.droolstest.School;impor...
2019-03-04 15:33:46 782
原创 同 KieHelper 不同一个StatlelessKiesession无状态
线程中创建一个StatlelessKiesession请看如下代码:package com.droolstest.dynamicRuleThread;import com.droolstest.Person;import com.droolstest.School;import org.kie.api.io.ResourceType;import org.kie.api.run...
2019-03-04 15:33:01 597
原创 同 KieHelper 同一个StatelessKieSession无状态
请看如下代码:package com.droolstest.dynamicRuleThread;import com.droolstest.Person;import com.droolstest.School;import org.kie.api.io.ResourceType;import org.kie.api.runtime.KieSession;import org.k...
2019-03-04 15:32:23 798
原创 不同 KieHelper
注不同KieHelper肯定是不同的Kiesession Kiesession线程创建请看如下代码:package com.droolstest.dynamicRuleThread;import com.droolstest.Person;import com.droolstest.School;import org.kie.api.io.ResourceType;impo...
2019-03-04 15:31:57 1017
原创 不同 KieHelper 不同Kiesession有状态
注不同KieHelper肯定是不同的Kiesession 但线程中试用则是唯一 只创建一次的不做修改的Kiesessionpackage com.droolstest.dynamicRuleThread;import com.droolstest.Person;import com.droolstest.School;import org.kie.api.io.ResourceTyp...
2019-03-04 15:31:24 1338
原创 同 KieHelper 同一个Kiesession有状态
代码如下:package com.droolstest.dynamicRuleThread;import com.droolstest.Person;import com.droolstest.School;import org.kie.api.io.ResourceType;import org.kie.api.runtime.KieSession;import org.kie...
2019-03-04 15:27:51 1647
原创 Drools7多线程,高并发测试总结
实际开发过程中,规则一般都会作为一个平台出现,例如常见的电商促销规则,金融的风险控制,反欺诈,医疗的合理用药等,处于一个高并发的阶段,下面小编就以多线程方式模拟高并发方式进行测试总结,下面的例子都是通过KieHelper 读取String类型方式,动态规则,在小编之前的研究过程中发现KieHelper效果是比较低的,因为它做的事是动态规则方式6 7方式的整合动作,前面的文章是有提过的,下面就以规则...
2019-03-04 15:26:50 9911
原创 实际应用中的优化方案
使用Drools规则引擎时,很多初学者都会认为Drools的效果比较低,做一个例子,哪怕是写一些简单的规则也会要很多秒的时间,在如今的高并发下,要求的都是效果第一,其实这是初学者的一个误区,在实际开发过程,我们都是要进行优化的,小编就针对Drools优化做一个说明,具体的优化可从两个方向着手,第一:规则语法;第二:执行规则。怎么说呢,第一种方式我们好理解,“规则语法”,就是我们通常所说的Drl文件...
2019-02-16 18:03:29 1468 5
原创 Drools新特性
Drools推出了一套新的基于KIE概念的API,其目的是将之前版本中对规则引擎繁琐的调用和加载过程加以简化。什么是KIE呢,研究Drools和jBPM的集成知识解决方案的过程只是使用“droolsjbpm”组名称。这个名字渗透了GitHub帐户和Maven POM。随着范围的扩大和新项目的推出,KIE是“知识是一切”的缩写,被选为新的组名。KIE名称也用于系统的共享方面; 如统一构建,部署和...
2019-02-16 17:52:13 1059
原创 Drools7实战篇,动态规则的实战应用
小编之前写过《Drools技术指南》教程,教程的主要内容基本已如果使用Drools为主,讲述了引用Drools的目、新特性、语法等一系Drools相关的说明,在教程中,有讲过这样两个章节,动态规则与规则引擎的项目实战运用思路,显然在读者在学习过程中都希望直接在项目中实战应用,由于没有基础做铺垫,加上项目工程紧张,最终就放弃了Drools的使用。小编创建过Drools相关的技术群,很多人也都...
2018-05-18 17:32:05 10047 1
原创 Drools介绍及应用场景-来志辉-专题视频课程
本次课程将以Drools规则引擎的概述,新特性等进行介绍,并准备一些小例子为大家提供Drools的一些基础例子
2018-01-24 15:06:54 2095
原创 spring boot 作为Spring的新产品
spring boot 作为Spring的新产品,为更好的让人使用,它提供了一个很好用的工具,在浏览器中打开http://start.spring.io/这里可选择是创建项目的类型:在Group与Artifact填写项目信息,在Search for dependencies中输出web并选择完成后点击Generate Project alt+Enter 会在浏览器下载一个压缩包,并进行解压,通过I...
2017-08-10 14:43:14 658
原创 Spring boot使用 hello world
方式一:创建一个maven项目:创建完成后,修改pom.xml文件内容如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"...
2017-08-10 14:39:58 455
原创 Spring boot 为Java开发者准备的安装指南
我们可以使用其他任何标准的JAVA库那样使用Spring boot,将Spring-boot-*.jar文件放在classpath下,spring boot 不需要集成任何特殊的工具,所有也可以使用任何IDE或文本编辑器进行开发,Spring boot应用也没什么,就像是普通的java程序那样运行和调试;但现在一般情况都使用支持依赖管理的构建工具,如最常用的maven或是Grable。Maven安...
2017-08-10 14:34:53 528
Drools——KieHelper的用法,通过模板的例子说明
2016-07-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人