首页 > 其他分享 >ServiceLoader使用

ServiceLoader使用

时间:2022-12-20 14:59:04浏览次数:39  
标签:java ServiceLoader BaseConfig fileName 使用 import public

1 定义接口
import java.util.List;
import java.util.Map;
public interface BaseConfig {
boolean match(String fileName);
Boolean existHead();
}
2 定义实现类
public class TradeCodeManyLineRbtrConfig extends BaseConfig {
    @Override
public Boolean existHead() {
return Boolean.TRUE;
}

@Override
public boolean match(String fileName) {
return Pattern.matches(INCRBTR_FILE_REGEX, fileName);
}
}
3 配置实现类

 

4 定义工厂

import java.util.Iterator;
import java.util.ServiceLoader;
public class FileParserConfigFactory {
private FileParserConfigFactory() {}
public static BaseConfig getFileParserConfig(String fileName) {
ServiceLoader<BaseConfig> serviceLoader =
ServiceLoader.load(BaseConfig.class);
Iterator<BaseConfig> it = serviceLoader.iterator();
while (it.hasNext()) {
BaseConfig service = it.next();
if (service.match(fileName)) {
return service;
}
}
return null;
}
}

 

标签:java,ServiceLoader,BaseConfig,fileName,使用,import,public
From: https://www.cnblogs.com/ladeng19/p/16994167.html

相关文章

  • 在rust语言中使用Cargo命令输出汇编文档
    首先来一波效果展示:(这是我使用方法二输出的文档,使用vscode工具查看的结果) 正文如下: 一、您可以使用Cargo的cargorustc命令直接向rustc发送参数:方法一:1cargorus......
  • django组件使用
    django内置序列化组件(drf前身)'''前后端分离的项目视图函数只需要返回json格式的数据即可'''fromapp01importmodelsfromdjango.httpimportJsonResponsedefa......
  • glob.glob使用
    20221220glob.glob(path_name)会返回一个符合path_name的list如果你使用:glob.glob('*')等同于使用os.listdir('./').参考:[1]https://www.pynote.net/archives/852......
  • Python3 Robot Framework CustomLibrary 封装系统关键字(使用自定义函数)
    1.创建一个python文件,确认能够执行,放入任意一个目录(如C:\CustomLibrary\helloworld.py)。#-*-coding:utf-8-*-defhi(name):u'''接收一个名字,并问候.例如|......
  • 如何在 Linux 下使用 TC 优雅的实现网络限流
    1.Linux下的流量控制原理通过对包的排队,我们可以控制数据包的发送方式。这种控制,称之为数据整形,shapethedata,包括对数据的以下操作:增加延时丢包重新排列重复、损坏速率......
  • 使用peewee模块操作数据库
    1.简介Peewee是一个PythonORM(Object-RelationalMapping)库,支持SQLite、MySQL、PostgreSQL和Cockroach数据库。在ORM系统中,每个类都映射到底层数据库中的一个表......
  • 使用PyTorch 2.0 加速Hugging Face和TIMM库的模型
    https://mp.weixin.qq.com/s/52_AxFW4puFktn-aH6aahw原创 AI小将 机器学习算法工程师 2022-12-2012:45 发表于广东点蓝色字关注“机器学习算法工程师”设为星标,干......
  • Debug --> wireshark中的lua插件使用
    一、使用Lua脚本对pcap文件按流进行存储https://zhuanlan.zhihu.com/p/35188803二、使用tshark对pcap报文进行批量切流https://blog.csdn.net/javajiawei/article/detai......
  • proto IDL管理工具buf使用实践
    proto是在当今使用最广泛的IDL之一,起因是dubbo3的Triple协议需要用到proto文件来生成统一规范的跨语言代码,Grpc也有类似的问题,想想一个团队有很多的业务模块,涉及到一些相......
  • 在.Net6 上 使用 Core Frist EF 进行数据迁移
    1.首先引用两个包,不过需要版本相同Microsoft.EntityFrameworkCore.SqlServerMicrosoft.EntityFrameworkCore.Tools  2.表实体定义usingSystem.ComponentModel.......