国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

Java動態獲取實現某個接口下所有的實現類對象集合

2024-07-14 08:43:05
字體:
來源:轉載
供稿:網友

最近有個需求,我需要獲取所有同一類型的定時任務的對象,并自動執行。

我想的方案是:直接獲取某個接口下面所有的實現類的對象集合,方便以后只需要 實現這個接口,就能自動被加載執行。話不多說,說說我的實現方案。

開始想著用反射自己寫一個工具類,后面懶得去折騰,就直接用第三方工具包了,這里我用的是org.reflections

maven配置:

<dependency> <groupId>org.reflections</groupId> <artifactId>reflections-spring</artifactId> <version>${reflections.version}</version> <exclusions> <exclusion> <groupId>javassist</groupId> <artifactId>javassist</artifactId> </exclusion> </exclusions> </dependency> 

我這里去除javassist包是因為單獨引入了javassist其他版本

另外就是代碼引用了,以DelayedBaseMonitor接口為例:

List<DelayedBaseMonitor> monitorLists = new ArrayList<>(); Reflections reflections = new Reflections(delayedFindPackageName); Set<Class<? extends DelayedBaseMonitor>> monitorClasses = reflections.getSubTypesOf(DelayedBaseMonitor.class); for (Class<? extends DelayedBaseMonitor> monitor : monitorClasses) {   monitorLists.add(ApplicationContext.getBean(monitor)); } 

這里我用了SpringApplicationContext去獲取bean,這樣能獲取這些實現類里面其他spring注入的bean。如果是簡單方式的話,你們可以直接通過

monitor.getNewInstance來實現

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大邑县| 临沂市| 伊宁县| 洛扎县| 龙门县| 边坝县| 灵寿县| 光泽县| 准格尔旗| 兴文县| 兴国县| 沁水县| 湘乡市| 台中市| 绥化市| 黄浦区| 穆棱市| 全椒县| 桐柏县| 信宜市| 北京市| 承德市| 元江| 山东省| 岑巩县| 邳州市| 万年县| 特克斯县| 东至县| 涪陵区| 乐亭县| 九台市| 临安市| 沈丘县| 二连浩特市| 高台县| 洛川县| 台江县| 双辽市| 汶上县| 桑日县|