依賴注入(Dependency Injection)的三種方式
為了對程式碼進行簡化,在得到dao時不必每次都寫出拿到dao的方法,可以使用依賴注入的方式.
依賴注入有2種方式:
1.基於setXX的方式:判斷有無setXX的方法,如果有,則將xx物件注入
具體程式碼:
public static void diDao(Object object) {
Method[] methods = object.getClass().getDeclaredMethods();
try {
for(Method m:methods) {
String methodName = m.getName();
if(methodName.startsWith("set")) {
methodName = methodName.substring(3);
methodName = methodName.substring(0,methodName.length()-3);
methodName = methodName.toLowerCase();
Object obj = DaoUtil.createDaoFactory().getDao(methodName);
m.invoke(object, obj);
}
}
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
該方式的缺點:當有其它非getXXDao方法時,該方式就會找不到對應的物件,執行時會報錯.
2.基於annotation的方式: anootation相當於一個標籤,當某個方法被貼上了這個標籤,就將xx物件注入
具體程式碼:
public static void diDao(Object object) {
Method[] methods = object.getClass().getDeclaredMethods();
try {
for(Method m:methods) {
if(m.isAnnotationPresent(ShopDi.class)) {
ShopDi sd = m.getAnnotation(ShopDi.class);
String value = sd.value();
if(value == null || "".equals(value.trim())) {
value = m.getName().substring(3);
value = value.substring(0,value.length()-3).toLowerCase();
}
Object obj = DaoUtil.createDaoFactory().getDao(value);
m.invoke(object, obj);
}
}
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
3.除了這2種方式外,還可以寫一個properties檔案,列出所有需要進行依賴注入的方法,比較繁瑣,不予考慮
相關推薦
依賴注入(Dependency Injection)的三種方式
為了對程式碼進行簡化,在得到dao時不必每次都寫出拿到dao的方法,可以使用依賴注入的方式. 依賴注入有2種方式: 1.基於setXX的方式:判斷有無setXX的方法,如果有,則將xx物件注入 具體程式碼: public static void diDao(Object o
依賴注入(DI)的三種實現方式
本文來探討一下依賴注入的三種實現方式是哪三種,Spring的支援又怎麼樣。 首先,依賴注入(DI)的實現方式有三種:設值注入、構造方法注入、介面注入,下面來看看這三種注入方式在Spring中的支援怎麼
spring注入bean的三種方式
1、自動化裝配bean 元件裝配:Spring會自動發現應用上下文所建立的bean。 自動裝配:Spring自動滿足bean之間的依賴 在類上加入@Component註解,告訴spring為這個類建立bean 使用@Autowired註解實現自動裝配,也可以使用java規範的@Inj
簡明依賴注入(Dependency Injection)
前言 這是因特奈特上面不知道第幾萬篇講依賴注入(Dependency Injection)的文章,但是說明白的卻寥寥無幾,這篇文章嘗試控制字數同時不做大多數。 首先,依賴注入的是一件很簡單的事情。 為什麼需要依賴注入 然後,假設我們有一個汽車Car,一個引擎介面Engine,兩個引擎具體實現Level
理解依賴注入(Dependency Injection)
我們通過一個示例來解釋為什麼使用使用者服務定位器和依賴注入。首先,假設我們正在開發一個元件,叫SomeComponent。它執行的內容現在還不重要,我們的元件需要依賴資料庫的連線。 在下面第一個例子中,資料庫的連線是在元件內部建立的。這種方法是不實用的;事實上這
BeanFactory和它的物件註冊和依賴繫結的三種方式
一、Spring中的BeanFactory是什麼? BeanFactory是個基本的IoC容器,提供完整的IoC服務支援,負責物件建立的管理和依賴注入服務 如果沒有特殊指定,預設採用延遲初始化策略(lazy-load)。只有當客戶端物件需要訪問容器中的某個受管物件
依賴注入 Dependency Injection (DI)
依賴注入 Dependency Injection (DI) 如果是第一次接觸這個概念,可能會一時沒有頭緒,網上的各種解釋可能讓你更加混亂,當看到下面那段例項程式碼你可能不相信它就這麼簡單。其實依賴注入本身是單純、簡單的。 你可以直接略過其他直接看例項程式碼! 設計原則
Spring依賴注入常用的兩種方式
Spring中依賴注入:定義物件之間的彼此依賴,常用的兩種注入方式:setter方法和構造器 1、setter方法:在容器中宣告變數並插入對應setter和getter方法,在對應xml文件中配置,程
依賴注入Dependency Injection(一)
Let's say we have a CustomerEditScreen that needs to load a Customer entity by ID from a web servi
sping_依賴註入的三種方式
str 屬性 -name .project 必須 array list per div 1. set註入:通過setxxx()給屬性賦值 <!--id是對象--> <!--class是類--> <bean id = "stu
依賴注入的三種方式
Spring通過DI(依賴注入)實現IOC(控制反轉),常用的注入方式主要有三種:構造方法注入,setter注入,基於註解的注入。構造方法注入先簡單看一下測試專案的結構,用maven構建的,四個包:entity:儲存實體,裡面只有一個User類dao:資料訪問,一個介面,兩個
【SSH三大框架】Spring基礎第二篇:Spring依賴注入的三種方式
控制反轉(Inversion of Control)和依賴注入(Dependency Injection):應用控制反轉,物件在被建立的時候,由一個調控系統內所有物件的外界實體將其所依賴的物件的引用傳遞給它。也可以說,依賴被注入到物件中。所以,控制反轉是,關於一個物件如何獲
Spring 依賴注入三種方式的實現,及迴圈依賴問題的解決(原始碼+XML配置)
搬磚啦,搬磚啦,這幾天在看Spring相關的書,下面給大家分享一下這幾天的心得與收穫,Go Go Go! Spring支援兩種依賴注入方式,分別是屬性注入,建構函式注入。除此之外,Spring還支援工廠注入方式。 接下來,我們一起來了解一下Spring的幾種注入方式。
Spring依賴注入的三種方式
Spring支援兩種依賴注入方式,分別是屬性注入和建構函式注入。除此之外,Spring還支援工廠方法注入。 1.屬性注入 實體類Car,有三個屬性 public class Car { private int maxSpeed; pr
IOC與DI的講解以及依賴注入的三種方式
首先:第一個問題,參與者都有誰?1)物件2)IOC/DI容器3)某個物件的外部資源第二問題:依賴,誰依賴誰?為什麼需要依賴?依賴嘛,很好理解的,物件依賴於IOC/DI容器,至於為什麼要依賴呢?物件需要IOC/DI容器來提供物件需要的外部資源。第三個問題:注入,誰注入誰?又注入了什麼呢?顯而易見是IOC/DI容
Spring靜態注入的三種方式
Spring靜態注入的三種方式: (說明:MongoFileOperationUtil是自己封裝的一個Mongodb檔案讀寫工具類,裡面需要依賴AdvancedDatastore物件例項,dsForRW用來獲取Mongodb資料來源) 在springframework裡,我們不能@Autowir
AndroidStudio中新增依賴的三種方式以及如何引入so檔案和arr檔案
轉載自:http://blog.csdn.net/zxc514257857/article/details/56534863 前言 AndroidStudio中新增依賴的三個選項,如圖: 分別為:庫依賴(Library dependency)、檔案依賴(
Spring boot 梳理 - SpringBoot中注入ApplicationContext物件的三種方式
直接注入(Autowired) @Configuration public class OAConfig { @Autowired private ApplicationContext applicationContext; @B
Spring Spring 靜態屬性 注入的三種方式
Spring靜態注入的三種方式: (說明:MongoFileOperationUtil是自己封裝的一個Mongodb檔案讀寫工具類,裡面需要依賴AdvancedDatastore物件例項,dsForRW用來獲取Mongodb資料來源) 在springframewo
springboot物件注入IOC容器的三種方式
Springboot會自動載入resources檔案下面的application.yml或者application.properties配置檔案,因為yml格式可以替代xml格式,功能properties更強大,所以一般都使用yml格式進行書寫。 1.對於yml中載入了的b