国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 杨浦区| 申扎县| 西昌市| 万载县| 桃江县| 通化市| 师宗县| 呼伦贝尔市| 清流县| 武鸣县| 新营市| 海门市| 海安县| 南澳县| 罗江县| 潮安县| 威海市| 土默特左旗| 滦平县| 称多县| 册亨县| 龙南县| 报价| 资源县| 女性| 永安市| 青神县| 绿春县| 民和| 大同市| 高邮市| 毕节市| 延川县| 达日县| 张掖市| 洪江市| 富平县| 玛多县| 玛多县| 乡城县| 乌苏市|