Java動態獲取某個介面下所有的實現類物件集合
最近有個需求,我需要獲取所有同一型別的定時任務的物件,並自動執行。
我想的方案是:直接獲取某個介面下面所有的實現類的物件集合,方便以後只需要 實現這個介面,就能自動被載入執行。話不多說,說說我的實現方案。
開始想著用反射自己寫一個工具類,後面懶得去折騰,就直接用第三方工具包了 , 這裡我用的是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));
}
這裡我用了Spring的ApplicationContext去獲取bean,這樣能獲取這些實現類裡面其他spring注入的bean。 如果是簡單方式的話,你們可以直接通過
monitor.getNewInstance來實現
相關文章
- java動態獲取實體類的欄位Java
- jQuery獲取某元素下所有的連結元素jQuery
- delphi 判斷類是否實現介面,獲取類實現的介面
- js 取陣列中某個物件的集合JS陣列物件
- java 所有的集合類以及Apache的集合類???JavaApache
- iOS 通過runtime獲取某個類中所有的變數和方法iOS變數
- java lambda list集合中物件某屬性重複,只取第一個物件Java物件
- C#獲取某個物件的屬性值C#物件
- lambda 表示式從集合中獲取某個欄位屬性的集合
- JAVA 將介面的引用指向實現類的物件Java物件
- Java實現獲取本機Ip的工具類Java
- java 一個類實現兩個介面的案例Java
- mybatis-plus 獲取某列表的某欄位的集合MyBatis
- Java反射獲取類和物件資訊全解析Java反射物件
- C#動態建立介面的實現例項物件C#物件
- Java集合為什麼設計為:實現類繼承了抽象類,同時實現抽象類實現的介面Java繼承抽象
- java 獲取物件大小Java物件
- UNIX下C++實現動態載入物件C++物件
- 通過Java反射動態獲取資訊Java反射
- 介面測試--獲取動態引數進階
- org.reflections 介面通過反射獲取實現類原始碼研究反射原始碼
- go如何實現類似java的動態代理GoJava
- 透過JPA註解獲取某個類主鍵欄位
- Java集合框架中的介面和類Java框架
- JAVA 兩個類同時實現同一個介面的方法Java
- java中介面多個實現類,如何指定實現類,根據子類型別選擇實現方法Java型別
- Roslyn 編譯器Api妙用:動態生成類並實現介面ROS編譯API
- java 匿名 泛型 獲取真實類名Java泛型
- 獲取某庫某個儲存過程內容儲存過程
- JAVA裡List集合中的物件根據物件的某個屬性值降序或者升序排序Java物件排序
- 動態獲取一級分類下拉框,根據所選一級分類id動態載入二級分類載入至下拉框
- asp.net 實現獲取一個集合陣列中出現次數最多的元素ASP.NET陣列
- 實習任務之使用react實現登入獲取動態列表React
- java實現下載器(以及建立一個URL物件)Java物件
- Swift 3 獲取某個日期的星座Swift
- jQuery如何實現獲取父元素下指定型別標籤的子元素集合jQuery型別
- php動態獲取常量PHP
- Javascript 類與靜態類的實現-js物件導向JavaScriptJS物件