好的,所以我们正在学习 Spring MVC 3。而且我们对 IoC、DI 等有点陌生。我们想清理很多旧的遗留错误。:-)
我们真的很喜欢@Autowired
我们的用户服务等。
然而,我们现在有一个问题,我们想用自动装配来解决。
假设我们有一个Login
bean:
public class Login {
private String username;
private String email;
// getters/setters....
}
这个 bean 应该在会话范围内使用。我们希望每个控制器都能够访问这个单一对象。
我假设我们在 application-config.xml 中需要它
<bean id="login" class="com.example.models.Login" scope="session" />
另外,假设我们有另一个类:
public class Employee {
private String firstName;
private String lastName;
private Login login;
public Employee(Login paLogin) {
this.login = paLogin;
}
}
并把它放在会话中:
<bean id="employee" class="com.example.models.Employee" scope="session" />
好的,稍后在我们的应用程序中,我们有一个电子邮件通知服务。该服务需要从 Login bean 访问username
和 以及email
来自 Employee bean 的信息。当然,我可以从会话内存访问登录 bean,但这只是一个示例。
@Controller
public class EmailController {
@Autowired
Login login; // this should come from session memory automatically right??
@Autowired
Employee employee; // OK, this should also come from session memory. Which contains a reference of the login too. Correct?
// getters/setters....
public void sendEmails() {
// ....
String email = login.getEmail();
String firstName = employee.getFirstName();
// ....
}
}
我希望这是有道理的。我们真正想要完成的是减少 XML 配置、减少常量参数传递、最少注释等。
任何可以为我指明正确方向的帮助将不胜感激。
谢谢!