编写一个定制的匹配器

实用匹配器(Matcher)小工具 基于Java实现的《实用匹配器小工具》: 可以实现常见的字符串匹配、空值匹配、反相匹配,以及通过配置对象属性(含嵌套属性)的配置来实现复杂对象的匹配,支持条件组合、取反等匹配功能。 可以在此匹配器的基础上实现自定义的判断、匹配、校验等功能,也可在此工具的基础上实现权限控制组件;当然也可以通过扩展/实现yakoo5.matcher.Matcher接口来实现自定义的匹配器,满足业务相关的功能。 《yakoo5.matcher-1.0.zip》压缩包内文件说明: (1)Matcher/dist/yakoo5.matcher-1.0.jar - 编译后的二进制class代码jar包; (2)Matcher/dist/yakoo5.matcher-1.0-javadoc.jar - javadoc api说明文档; (3)Matcher/dist/yakoo5.matcher-1.0-src.jar - 源代码(含JUnit单元测试代码)。 立即下载
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 写一个定制的匹配器 通常来说,实现定制的匹配器是个简单的任务,复杂性主要在于编码实现匹配器要完成的实际工作。这种简单性很大程度上归功于Matcher接口的简单性和Matcher包中提供的两个抽象的模板类。GenericMatcher 和 GenericRecipientMatcher这两个类极大的简化了匹配器开发人员的工作。 正如这个手册其它地方所讨论的那样,匹配器接口不是简单的判断某个特定的消息是否匹配。更确切的说,它将原始消息接收者的某个子集做为match(Mail)方法的结果返回。这导致了对匹配器的实现提供了两种不同的抽象。 第一个是GenericMatcher,这个类是为那些没有必要了解接收者信息的匹配器提供的。如果你的匹配器想要返回所有接收者或不返回任何接收者信息,那你基本上应该实现这个类的子类。 当创建这个类的子类时,有四个方法需要重构,它们是getMatcherInfo()、init()、match(Mail)和destroy()。 More on these anon. 第二个是GenericRecipientMatcher,这个类是为那些需要分别了解每个接收者信息的匹配器提供的。它是GenericMatcher的子类,并且从GenericMatcher类继承了的大多数行为。唯一主要的区别是创建它的子类需要重构 matchRecipient(MailAddress)而不是match(Mail)。 配置 匹配器的配置信息通过一个单独的字符串传送。解释这个字符串列表的任务完全交给匹配器去完成。通过调用 GenericMatcher类的getCondition()方法可以获得这个字符串的值,该方法返回传送给匹配器的字符串的值,如果没有配置字符串,则返回null。可以在init()、destroy()、 match(Mail)和matchRecipient(MailAddress)方法中调用该方法。 Logging Mailet API提供了一个简单的日志机制。它不支持日志记录的级别,所以必须在匹配器的代码里实现所有的日志过滤器。可以通过调用GenericMatcher/GenericRecipientMatcher中的log(String) 或者 log(String,Throwable)两个方法中的任何一个记录日志信息。 在init()、 destroy()、match(Mail)和matchRecipient(MailAddress)方法中都可以调用日志方法。 getMatcherInfo()的返回值是和匹配器的日志信息相关的。所以你可能希望重构这个方法以便可以分清不同匹配器的日志记录信息。 初始化 初始化是匹配器生命周期的一部分,匹配器实例创建后马上要进行初始化。每个匹配器实例都会进行并仅进行一次初始化操作。匹配器的初始化阶段通常是其进行配置和创建其自身专用资源的阶段。如果你的匹配器不需要,你可能没必要执行任何初始化操作。需要通过重构GenericMatcher/GenericRecipientMatcher的 init()方法来实现初始化逻辑。 匹配 匹配器的工作主要是在匹配阶段完成。这个阶段的形式主要取决于继承了那个匹配器超类。 如果继承GenericMatcher类,要实现match(Mail)方法。如上所述,这个方法返回一个邮件地址的集合--邮件对象原始接收者的子集。 如果纯粹是一个过滤接收者的匹配器,那么应该继承GenericRecipientMatcher类。在这种情况下,开发人员必须实现matchRecipient(MailAddress)方法。如果接收者与条件匹配返回true,否则返回false。 销毁 销毁是匹配器生命周期的一部分,当容器清除匹配器的时候,必须确保匹配器被销毁。每个匹配器实例都会进行并仅进行一次销毁操作。匹配器通常在这个阶段释放其专用的资源。如果你的匹配器不需要,你可能没必要执行任何销毁操作。需要通过重构GenericMatcher/GenericRecipientMatche的 destroy()方法来实现销毁逻辑。 部署定制的匹配器 一旦实现了匹配器,仅仅还需要两步就可以完成匹配器的部署了。 将匹配器添加到Classpath 匹配器必须被加入到James的classpath中以便James能够载入。有如下两种方法可以将定制的匹配器加入到James的classpath中: 1.下载源码发布文件,解压缩后将包含定制类的jar文件添加到lib目录下,然后依照这里的指示创建一个新的.sar文件。现在这个新的.sar文件就包含你定制的类了。 或者 2. 将包含定制类的文件的jar文件放到James安装文件的lib子目录中。此外还必须解压.sar文件,将其中的JavaMaile和James的jar文件添加到这个目录中。 配置James 处理流程的配置在文档的 其它文件中讨论。篇幅所限,这里不对匹配器部署的配置细节展开讨论。这里仅提出需要着重注意的两点,第一是将定制的匹配器添加到适当的匹配器包列表中,第二点是你的匹配器的名字不能与这里描述的任何匹配器相冲突。
华为设备有关用户名密码的策略配置 命令用来开启对密码进行复杂度检查功能,设备默认已经是开启状态。1、密码长度大于等于12位,含数字大小写字母和特殊符号。2、设置密码更换周期为90天。取值范围8-16,默认长度为8位。登录失败后锁定时间大于15分钟。3、登录失败次数小于5次。4、登录超时30分钟以内。 阅读详情

相关推荐

紫光同创PGL50H开发板PCIE通信保姆级教程:从IP核安装到Windows设备管理器识别

本文详细介绍了紫光同创PGL50H开发板PCIE通信的全流程,从IP核安装到Windows设备管理器识别。通过环境搭建、工程配置、管脚约束、固件烧录等步骤,帮助开发者快速掌握FPGA与PCIE通信技术,解决实际开发中的常见问题,提升开发效率。

weixin_30500473的博客 434

自定义Hamcrest匹配器

本篇将通过多种方式自定义Hamcrest匹配器. 通过FeatureMatcher自定义Hamcrest匹配器 创建Hamcrest匹配器 我们自定义一个为String提供长度的匹配器,需要利用FeatureMatcher类,封装一个现有的匹配器,用来决定给定的被测对象的哪个字段匹配,并且提供丰富的错误信息.FeatureMatcher的构造函数有下列参数: 我们想要包装...

张鹿鹿的专栏 1079

【Ragflow】9.问答为什么比搜索响应慢?从源码角度深入分析

前几天看到有群友提到一个现象:Ragflow的搜索界面的问答速度很快,但聊天界面的问答速度很慢,究竟是什么原因?在深入挖掘源码之后,逐渐发现了问题的答案。

兴趣使然的创作者 2906

Java 编写一个程序实现信息匹配

编写一个程序,如图所示,每当右侧的选择框中选中一个人的名字,便在左侧的文本区中显示出此人的情况介绍,,当按close按钮时,程序关闭。 思路: 1.可将窗体设置为两个面板,左边一个右边一个,然后分别添加组件即可 2.为选项添加事件监听 (itemlistener),按选项修改文本域即可。 代码如下: package com.tcz.exersise5; import java.awt.*; i...

qq_44160107的博客 1053

ShardingSphere-JDBC-若依框架集成(SpringBoot)

ShardingSphere基础知识、ShardingSphere-JDBC如何集成进若依框架中 使用的是若依框架前后端版本、动态数据源,可自行切换,默认数据源为达梦8代理端,

编程小菜鸟的笔记 8168

不用U盘也能装Ubuntu?手把手教你用EasyUEFI搞定双系统(附企业版资源)

本文详细介绍了无需U盘即可安装Ubuntu双系统的方法。通过使用EasyUEFI工具,在Windows环境下创建虚拟启动分区并配置UEFI引导,即可直接从硬盘启动Ubuntu安装程序。该方法特别适合开发者或技术爱好者快速搭建Linux开发环境,操作安全便捷,无需额外物理介质。

weixin_29215391的博客 287

如何创建一个自定义的适配器

创建一个自定义的适配器需要继承BaseAdapter,并常常需要写以下几种方法: 1.构造函数 2.getCount(int position) 3.getItem(int position) 4.getItemId(int position) 5.getView(int position, View convertView, ViewGroup parent) 其中各方法的作用为: 1.构造函数...

废材的博客 2652

信创环境下,软件测试如何破局?

毕竟,在自主可控的道路上,每一行通过测试的代码,都在为信创产业的未来添砖加瓦。未来,测试工程师不仅要验证软件在信创环境的可用性,更要基于国产软硬件的特性,推动软件进行 “原生设计”—— 例如,针对国产 CPU 的多核架构优化代码,基于国产数据库的索引机制提升查询效率。某政务云平台的测试数据显示,在 “飞腾芯片 + 麒麟操作系统” 环境下,系统的并发处理能力较传统环境下降约 15%,测试团队通过优化软件的线程调度逻辑,最终将性能损失控制在 5% 以内 —— 这正是信创性能测试的价值所在。

weixin_45608163的博客 886

Fedora Firefox flash-player插件安装

问题描述:在Fefora下用Firefox浏览器打开网页时发现很多flash显示不了,并提示安装缺失插件。于是点击“安装缺失插件”,进入Adobe flash player的下载地址,下载了linux32位系统的.tar.gz的安装包。 安装步骤:将安装包移动到/opt目录下,tar xvzf 解压,然后下面有usr目录和Readme文档,还有一个libflashplayer.so文件。其

suxiang198的博客 1462

利用python语言进行相机标定

利用python语言进行相机标定 目录利用python语言进行相机标定一、相机标定相关原理1.相机标定简介2.坐标映射2.1图像坐标系1)图像坐标系(Pixel coordinate system)2)成像平面坐标系(Retinal coordinate system)3)摄像机坐标系(Camera coordinate system)4)世界坐标系(World coordinate system)二、相机标定算法流程1.镜头畸变1.1径向畸变1.2切向畸变2.相机标定算法求解外参内参和单应矩阵关系求解(张

qq_44818951的博客 4700

【JAVA】海康威视门禁机ISAPI接口开发,人脸上传更新接口

本文实现了一个HTTP工具类HTTPClientUtil,提供GET/POST/PUT/DELETE请求方法,支持摘要认证。工具类封装了Apache HttpClient,设置连接超时、最大连接数等参数,通过DeviceInfoDTO传递设备IP、端口和认证信息。文中还展示了两个应用示例:userInfoAdd()用于添加人员信息,FaceDataRecordAdd()用于添加人脸数据,均通过POST请求与设备ISAPI接口交互。该工具类简化了HTTP请求处理,支持设备管理系统的集成开发。

qq_27246521的博客 590

为64位Fedora 14 系统安装flash插件

<br />原文来自:http://mtd527.blog.163.com/blog/static/2227237201010236255281/<br /><br /><br /><br />本人使用的也是 Fedora 14 64位系统,现在我们开始为系统安装 flash 插件:<br /> 原文转载于Flash-FedoraProject<br /><br /> 1,安装adobe源,下载 Adobe Flash Player ,下载“针对linux的YUM”<br /> 2,下载并安装“ a

dayeshisir的专栏 2442

借助Gemini 3 Pro高效解决课题申报中的五大核心痛点,亲测有效经验分享

之前给大家分享过关于AI辅助课题申报的相关的内容,涵盖了申报书部分撰写技巧,但没针对性拆解各位同仁在实际申报时遇到的卡壳的地方。比如选题范围拿捏不准,定的太大,根本没法落地完成;定的太小,研究价值则体现不了;写综述时,容易单纯罗列文献,缺乏批判性视角,没办法自然融入自己的判断,找不到研究缺口;研究方法部分,可能担心方法设计不够严谨,别人难以复现.....针对这些申报中的高频痛点,接下来七哥会从五个核心要点出发,借助Gemini 3 Pro高效解决这些痛点。

智能AI让学术科研更容易 701

Fedora 15安装flash插件(yum flash-plugin)

Fedora除了可以安装官方提供的RPM版flash插件,也可以用yum来安装:su rpm -ivh http://linuxdownload.adobe.com/adobe-release/adobe-release-i386-1.0-1.noarch.rpm rpm –im

aidenliu的专栏 2301

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

fedora26安装flash插件、搜狗拼音、Mysql

鉴于网上的资料都已过时,写此文,这是我在优快云的第一篇博客。 1、fedora26安装flash插件(chromium浏览器) 先安装chromium浏览器:[root@localhost ~]# dnf install chromium,安装成功后用chromium访问https://get.adobe.com/cn/flashplayer/ ,下载得到flash_player_ppapi

罗宇翔的博客 524

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

fedora下安装flash player插件

一 下载  www.2cto.com   For Fedora 32-bit x86   rpm -ivh http://linuxdownload.adobe.com/adobe-release/adobe-release-i386-1.0-1.noarch.rpm rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux   F

zhangguoxiang1987的专栏 1000

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

转: Fedora 17 安装flash插件

转自:http://www.linuxidc.com/Linux/2012-06/62694.htm要在Fedora 17 下安装Flash player 1- 添加 For Fedora 32-bit x86 rpm -ivh http://linuxdownload.adobe.com/adobe-release/adobe-release-i386-1.0-1.noarch.rpmrpm -

nvd11的专栏 814

Fedora 10安装Flash播放器插件

在LINUX系统里安装FLASH插件也不是一件难事,因为现在ADOBE公司出的最新FLASH播放10.0已经是非常容易安装的了,但值得注意的是,因为目前ADOBE公司只出32位的正式版插件,而64位的LINUX系统则不能安装这个32位的正式版插件,就算安装成功了,也能看FLASH,没错,但只有图像而没有声音的,因此,64位的LINUX系统必须有不一样的安装方法,具...

weixin_34023863的博客 82

linux opera flash插件,Fedora25安装Flash插件和Opera浏览器——此浏览器据说内置***

Opera浏览器,是一款适用于各种平台、操作系统和嵌入式网络产品的高品质、多平台产品。采用Opera Turbo功能极大的改善受限连接上的浏览器速度,例如wifi,手机联网等;新引擎 Opera Presto在渲染内容复杂页面时速度更快,提速40%;全新的可视化标签,根据个人需求自定义自己的快速拨号。据说,内置×××.需要先配置FZUG源:这是一个专门为Fedora中文用户建立的源,很好用。包含很...

weixin_39904522的博客 263

fedora10下为firefox安装flash插件

1.下载flash-plugin    http://get.adobe.com/flashplayer/ 2.rpm -ivh flash-plugin-10.0.22.87-release.i386.rpm 3.这样安装后重启firefox,flash还是不可用的 4.插件libflashplayer.so被安装到/usr/lib/flash-plugin下面 

星星的技术专栏 1326

fedora安装flash插件

首先,参照Abobe官方网站:http://get.adobe.com/flashplayer/, 选择YUM for Linux方式(或者选择.tar.gz用于安装64 bit alpha版本)下载adobe-release-i386-1.0-1.noarch.rpm。安装rpm的过程中,...

chnaxk1145的博客 232

fedora24安装flash插件

1.到flash官网选择ram格式的包 2.然后,它自己弹出了一个准备就绪的对话框,点击 3.点击安装 4.成功 5.然后。这是怎么回事,我上网找了那么多方法都不行,为什么这就自己安装了

average1007的博客 589

fedora 16 安装firefox flash插件

1、在http://get.adobe.com/cn/flashplayer/下载yum安装包,并安装2、执行#yum install flash-plugin 转载于:https://www.cnblogs.com/heroking2000/archive/2012/04/06/2435440.html

weixin_30951231的博客 215

Fedora10 安装flash 插件

下载install_flash_player_9_linux.tar.gz。然后按照安装说明进行安装,我安装的步骤如下:# cd install_flash_player_9_linux# ./flashplayer-installerCopyright(C) 2002-2006 Adobe Macromedia Software LLC. All rights reserved

t51558330501的专栏 1030

Fedora 18 安装 flash 插件

从flash官方网站(http://get.adobe.com/cn/flashplayer/)上下载RPM安装包adobe-release-x86_64-1.0-1.noarch.rpm RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、S.u

wanghaoming100的专栏 1650

Fedora25安装Flash插件和Opera浏览器——此浏览器据说内置***

Opera浏览器,是一款适用于各种平台、操作系统和嵌入式网络产品的高品质、多平台产品。采用Opera Turbo功能极大的改善受限连接上的浏览器速度,例如wifi,手机联网等;新引擎 Opera Presto在渲染内容复杂页面时速度更快,提速40%;全新的可视化标签,根据个人需求自定义自己的快速拨号。据说,内置×××.需要先配置FZUG源:这是一个专门为Fedora中文用户建...

weixin_34194087的博客 189
上一篇: 编写一个定制的Mailet
下一篇: JSP与JavaMail (二)
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值