在spring下獲取分類下的所有子類
我們一般使用java的時候更多的時候是獲取子類的父類是誰。或者多型的使用具體子類。但是有時候的業務會要求你拿到父類下的所有子類。那麼該怎麼做呢?
注意:子類不一定在同一個包裡。
1.在所有的子類上加上自定義註解,全域性獲取使用自定義註解的類。即為所有的子類。
該方式未使用,但肯定可以實現。暫不做討論,有機會在後面予以補充。
2.在全域性類載入的過程裡比對 具體的類是否是你父類的子類。
操作方式,獲取全域性的class檔案路徑,挨個比對。發現一個存一個,之後即可獲得所有子類。但是這種方式在spring下有點浪費。因為spring有類的託管機制。我們把具體的子類交給spring,讓其在jvm啟動的時候即例項化。使用如下程式碼:
@Component //監控類 實現BeanPostProcessor介面 public class DictDepository implements BeanPostProcessor { @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { return bean; } /** * 在具體子類初始化之後 確認該物件是否是對應父類(DictCode)的子類 */ @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { // 如實現字典DictCode 則就執行put功能 if (bean instanceof DictCode) { DictCode dict = (DictCode) bean; dict.addDict(DictCode.MAPCODE); } return bean; } }
此時 該問題即可解決。
歡迎拍磚。
相關推薦
在spring下獲取分類下的所有子類
我們一般使用java的時候更多的時候是獲取子類的父類是誰。或者多型的使用具體子類。但是有時候的業務會要求你拿到父類下的所有子類。那麼該怎麼做呢? 注意:子類不一定在同一個包裡。 1.在所有的子類上加上自定義註解,全域性獲取使用自定義註解的類。即為所有的子類。 該方式未使用,但肯定可以實現。暫不做討論,有機
JAVA獲取同一路徑下所有子類或介面實現類
整個測試程式碼如下: Java程式碼 package find; import java.io.File; import java.io.IOException; import java.net.URL; import java.util.A
根據父類獲取同一個包(包括子包)下所有子類
宣告:文章內容全都是自己的學習總結,如有不對的地方請大家幫忙指出。有需要溝通交流的可加我QQ群:425120333 Java語言的三大特性是繼承、封裝、多型。繼承指的是子類通過關鍵字extends繼承父類、或者是implements實現介面。不管
背水一戰 Windows 10 (122) - 其它: 通過 Windows.System.Profile 命名空間下的類獲取信息, 查找指定類或接口的所在程序集的所有子類和子接口
enter 轉換 local frame long windows 添加 roo schema [源碼下載] 背水一戰 Windows 10 (122) - 其它: 通過 Windows.System.Profile 命名空間下的類獲取信息, 查找指定類或接口的所在程序集
php無限分類根據頂類獲取所有子類
首先建立分類資訊表: CREATE TABLE IF NOT EXISTS `category` ( `categoryId` smallint(5) unsigned NOT NULL AUTO_INCREMENT, `parentId` smallint(5)
php獲取分類下面的所有子類方法
獲取分類下面的所有子類方法: static function getMenuTree($arrCat, $parent_id = 0, $level = 0,$all=True)
Linux 下獲取當前路徑所有目錄大小並排序
目錄排序 大小排序日常工作中,會遇到一堆目錄,如何查看各目錄大小呢,大家都知道du命令先列出前10條[email protected]/* */ /scripts]#du -sh * | head 120K 2017031510 248K 2017031514 23M 2017031515 664
Python3下獲取WINDOWS下所有常用系統路徑
all IT environ RM TE lena 常用 nvi form #codeing:utf-8import os #搞定WINDOWS下所有系統路徑filename=‘c:\\WINDOWS_ALL_PATH.txt‘f=open(filename,‘w‘)i=1
通過父級id獲取到其下所有子級(無窮級)id及父級id——Mysql函數實現
led cti creator returns ror mod har 為什麽 界面 【需求】某用戶只能查看其自己信息及其下級信息,涉及通過該用戶所在部門獲取其下所有部門(多層)id集合。 步驟一:對數據庫進行設置: set global log_bin_trust_f
mysql獲取選單下面所有子選單的sql
select * from ( select t1.*, if(find_in_set(ac_pid, @pids) > 0, @pids := concat(@pids, ',', rc_id), 0) as ischild from (
spring動態獲取介面的不同實現類
最近做專案,有個需求是和外部對接,從介面獲取新聞資料,把資料和快取中的資料對比,多了的新增到資料庫,少了的刪掉。介面有兩個,一開始我是在業務類裡寫了兩個方法,程式碼太長,簡單說就是兩個部分: public Object saveANews() { //1、獲取A介面新聞列
mongoose 實現DBRef查詢所有子類資訊
產品表 var Mongoose = require('mongoose'); var Schema = Mongoose.Schema; var Product = new Schema({ image : { type
Android View的繼承體系大全(包含125個view的所有子類)(by 星空武哥)
安卓的view是一個龐大是繼承體系,今天花了一個晚上我總結一下view的繼承體系。view的直接繼承子類有12個,間接繼承子類有113個。今天我就總結一下所有的view的子類,希
序列化必須所有子類都要實現序列化
import java.io.*; public class Pond implements Serializable { private Duck duck=new Duck(); public static void main(String [] args) {
遞迴查詢-簡單遞迴查詢父類及所有子類
專案中需要遞迴查詢,簡單的寫了一個,記錄一下。 具體查詢sql就不貼出來了,每個業務都不一樣,但是都差不多,基本上都是根據父類搜尋下面的子類。 public Result sele
ThinkPHP分類查詢(獲取當前分類的子分類,獲取父分類,下一級分類)
lod ids implode logs emp str foreach reac 初始化 獲取指定分類的所有子分類ID號 //獲取指定分類的所有子分類ID號 function getAllChildcateIds($categoryID){ //初始化ID數組
js獲取元素下所有子元素總寬度賦值給父元素
網上 () func back 賦值 click button article ack 這個問題是今天在網上看到有人提的。 想要獲取#box下面所有div的寬度之和,然後賦值給#box,不論加多少個div,#box的寬都會隨著div的增加而改變。 <styl
[Java] File類 遞歸 獲取目錄下所有文件/文件夾
div static absolut 遞歸 urn 返回 direct gpo private package com.xiwi; import java.io.*; import java.util.*; class file{ public st
java基礎 File與遞歸練習 使用文件過濾器篩選將指定文件夾下的小於200K的小文件獲取並打印按層次打印(包括所有子文件夾的文件)
tor accep length 按層 col 不存在 args name style package com.swift.kuozhan; import java.io.File; import java.io.FileFilter; /*使用文件過濾器篩選將指定文
Android獲取資料夾下的所有子檔名稱;
public static List<String> getFilesAllName(String path) { File file=new File(path); File[] files=file.listFiles(); if