OK、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" />
OK、このアプリケーションの後半では、電子メール通知サービスがあります。そのサービスは、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 構成の削減、定数パラメーターの受け渡しの削減、最小限の注釈などです。
私を正しい方向に向けることができる助けがあれば幸いです。
ありがとう!