用了這麼長時間ssh了,可是對spring IOC還是不太理解,還停在只知道這麼用,但不知道爲什麼這麼用,就是不明白它是怎麼個調用過程,先說下以前的框架用的是面板模式,就是一個service,和一個service的實現類,service是個接口,分層分的比較細,所有的方法都在service這個接口裏,我不明白爲什麼在antion裏直接用service.方法就可以調用ServiceImpl實現的方法,正常情況應該是先創建個ServiceImpl的對象,在用這個對象調用自己的方法,請問這要怎麼理解呢?
這是spring的注入功能 已經幫助你實現了 在容器的啓動的時候已經版主你進行實例話了 ,啓動過程中 ,它會循環你的bean的配置文件 ,利用反射機制,實例化這個類 ,如action ,service,dao,然後就是循環你配置文件裏的property屬性,利用反射機制找到property在類中的set方法, 由於上一步該property類已經被實例化 ,所以直接進行set方法進行賦值。
大體應該是這個流程,希望你能明白至於爲什麼會調用接扣變量就能調用實現類的方法 ,這是java多態機制,接口變量指向實現類對象的引用,jvm在運行時 動態執行對象的方法(這都是java基礎
多態)