對不起,本文對IoC和依賴注入有點困惑。我會給你舉個例子,但我很難實現。Java IoC和Guice - 依賴注入
假設我有一類用戶是這樣的:
public class User {
private String username;
private String password;
// getter and setter
}
這個類,應該在其他幾個控制器一起使用:
- 的UI,其中用戶可以更改其密碼
- 另一用戶可以提交一些「工作」的UI,並且此控制器需要訪問用戶名
- 需要用戶的任務(線程或其他)
在這裏,我們只有一些例子,其中需要用戶,所以在第一個例子中,用戶是單身人士並且應該「活」在整個應用程序中。
在應用程序啓動(主)用戶將被加載,但只有一個這三個控制器將被創建。另一個組件將在應用程序運行時(以及某些事件發生時)創建。
一個簡單的方法可能是創建所有這三個組成以接受User
對象和實施這樣:
public class FirstComponent {
private User user;
public FirstComponent(User user) {
this.user = user;
}
}
通過這種方式,我們需要經過用戶的設置來創建所有的組件,而不是當他們需要時。
一個更好的方法(我覺得...)可能是不注入用戶在此需要的所有類,而不被「obbligated」創建此組件的User
創建後:
public class FirstComponent {
@Inject
private User user;
public FirstComponent() {
// do something
}
}
public class SecondComponent {
@Inject
private User user;
public SecondComponent(int anArg) {
// do something
}
}
我的問題是
- 這可能是一個很好的解決方案,在大型應用程序中開發代碼,這不僅是一個只有其他3/4類的主類?
- 如何做到這一點,並避免A類依賴於B類?
在應用中,可能存在許多類,如用戶,例如:
- 具有預約列表的類 - >這將被共享屬於許多控制器
對不起如果我發佈了一個愚蠢的問題,但看在網上我發現了一些exaplain如何解決這個問題的例子。
我在看Guice,我已經開始使用它(很少),但問題沒有解決。
非常感謝您的幫助!