对不起,本文对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,我已经开始使用它(很少),但问题没有解决。
非常感谢您的帮助!