欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

通過ASM反射實(shí)現(xiàn)IOC

大家知道ASM可以來(lái)分析 修改類 從前學(xué)習(xí)spring的時(shí)候里面有個(gè)叫IOC的技術(shù),不知道他的底層實(shí)現(xiàn)感覺很神秘,

成都創(chuàng)新互聯(lián)公司專注于河源企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),商城網(wǎng)站開發(fā)。河源網(wǎng)站建設(shè)公司,為河源等地區(qū)提供建站服務(wù)。全流程按需設(shè)計(jì)網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

但是最近在看ASM的東西,感覺結(jié)合反射用它就可以實(shí)現(xiàn)自動(dòng)注入的功能。例子如下

那spring里面是如何實(shí)現(xiàn)的呢?

// 
注解類
package hgs.asm;
public @interface AutoWare {
}
//AnoDesc 里面的一個(gè)屬性
package hgs.asm;
public class A {
}
package hgs.asm;
//用于操作的類
public class AnoDesc {
	String name = "hgs";
	int age = 100;
	
	@AutoWare
	A a;
	public void saySomething(String desc) {
		System.out.println("say:" + desc);
	}
	
	
}
//測(cè)試
package hgs.asm;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.List;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.Type;
import org.objectweb.asm.tree.AnnotationNode;
import org.objectweb.asm.tree.ClassNode;
import org.objectweb.asm.tree.FieldNode;
public class Test {
	
	public static void test1() throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchFieldException, SecurityException {
		String clazz  = "hgs.asm.AnoDesc";
        Class<?> forName = Class.forName(clazz);
        
        AnoDesc newInstance = (AnoDesc)forName.newInstance();
        //通過asm讀取類  通過其屬性api 來(lái)訪問類的屬性 方法 注解
		ClassNode node = new ClassNode();
        //node.superName ="org.objectweb.asm.ClassVisitor";
		
        ClassReader reader = new ClassReader("hgs.asm.AnoDesc");
        //ClassWriter writer = new ClassWriter(0);
        reader.accept(node,0);
        //node.accept(writer);
        //得到所有的屬性
        List<FieldNode> fields = node.fields;
        for(FieldNode fnd: fields) {
        	String name = fnd.name;
        	String desc = fnd.desc;
        	Object value = fnd.value;
        	Type tp = Type.getObjectType(desc);
        	System.out.println("name:"+name);
        	
        	System.out.println("desc:"+desc);
        	System.out.println("value:"+value);
        	System.out.println("type:"+tp.getInternalName());
        	
        	
        	System.out.println();
        	//判斷屬性是否存在 AutoWare注解
        	List<AnnotationNode> invisibleAnnotations = fnd.invisibleAnnotations;
        	if(invisibleAnnotations!=null ) {
        		for(AnnotationNode and : invisibleAnnotations) {
        			System.out.println("	anotation:"+and.desc);
        			System.out.println("equals:"+"Lhgs/asm/AutoWare;".equals(and.desc));
        			//存在的話 就把該屬性初始化
        			if("Lhgs/asm/AutoWare;".equals(and.desc)) {
        				String qiliName = tp.getInternalName().replaceFirst("L", "").replaceAll("/", "\\.").replace(";", "");
        				System.out.println("qulity name :"+ qiliName);
        				Class<?> fi = Class.forName(qiliName);
        				Field declaredField = forName.getDeclaredField(name);
        				declaredField.set(newInstance,fi.newInstance() );
        			}
        		}
        	}
        }
        System.out.println(newInstance.a);
	}
	public static void main(String[] args) throws Exception{
		test1();
	}
}
結(jié)果

通過ASM 反射實(shí)現(xiàn)IOC

文章題目:通過ASM反射實(shí)現(xiàn)IOC
網(wǎng)頁(yè)網(wǎng)址:http://aaarwkj.com/article6/igijig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、網(wǎng)站排名、云服務(wù)器、關(guān)鍵詞優(yōu)化、品牌網(wǎng)站建設(shè)、用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)
欧美日韩国产另类一区二区| 午夜久久精品国产亚洲av| 你懂的免费视频中文字幕| 欧美亚洲国产日韩另类| 亚洲欧洲另类美女久久精品| 91观看免费完整版高清| 亚洲成av人在线观看福利| 深夜成人免费观看视频| 国产av高清亚洲精品高清二部| 国产精品中文字幕日韩在线| 草草影院最新地址在线观看| 欧美日韩国产精品综合| 情五月激情亚洲丁香佳色| 永久免费看黄在线观看| 国产精品亚洲欧美日韩在线播放| 国产视频一区二区麻豆| 国产91精品成人在线观看 | 亚洲午夜福利啪啪啪| 亚洲一区二区三区在线播| 亚洲av蜜臀在线播放| 水蜜桃成人在线视频免费观看 | 欧美日韩国产天堂一区| 国产精品一级在线播放| 日韩欧美亚洲一级黄片| 男人的天堂成人午夜视频| 欧美一区二区精品少妇| 91欧美日韩中在线视频| 中文字幕一区二区三天| 韩国理伦三级做爰观看| 国内精品久久久久久2021| 国产av一区二区三区高潮蜜| 日韩av综合色区人妻| 国产精品粗又长一区| 亚洲成人日韩在线播放 | 亚洲精品一区二区三区三州| 亚洲国产精品一区二区av| 91亚洲精品久久久蜜桃网站| 亚洲精品??一区二区| 国产原创av超爽剧情系列| 不卡的av中文字幕在线播放| 国产日韩欧在线视频|