私を助けてください 私は新しいspring mvcユーザーです。コントローラでは、私はそのようなシングルトン豆呼び出す:spring mvc bean scope singletonが正しく動作しないようです。
@RequestMapping(value = "/student", method = RequestMethod.GET)
public ModelAndView student(@RequestParam(required = false) String name) {
ApplicationContext context =
new ClassPathXmlApplicationContext(new String[] { "mvc-dispatcher-servlet.xml" });
Student student = (Student) context.getBean("student");
if (name != null && name.length() > 1) {
student.setName(name);
}
System.out.println("name:" + student.getName());
return new ModelAndView("result", "student", student);
}
初めて、私はブラウザにURLを入力してください:http://localhost:8080/example/student?name=myname そのようなシステムの印刷結果:名:MYNAME =>それは二度目
大丈夫です私はブラウザでurlを入力します:http://localhost:8080/example/student このようなシステムの印刷結果:name:null
なぜですか?リクエストごとに1つのBeanインスタンスが作成されると言っていますか? 初めて生徒の名前が設定されたのは「myname」です。もう一度リクエストすると、1回目のリクエストで設定されたため、1つのBeanインスタンスが作成された場合、学生の名前は「myname」でなければなりません。しかし、私の場合、2回目のリクエストでは、 Beanのインスタンスを作成する?だから、名前の値は
どうもありがとうございました
私は削除する場合は、Webアプリケーション用の容器を春にあなたのxmlファイルを設定するには、このリンク "のApplicationContextコンテキスト= 新しいClassPathXmlApplicationContext(新しいString [] {" MVC-ディスパッチャ-servlet.xml」}) ; " "@Autowired private student student"を使用すると、リクエストごとに単一のBeanインスタンスが作成されます。何か案が? –