請幫幫我 我是新的spring mvc用戶。在控制器I調用單豆像:spring mvc bean作用域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);
}
的第一次,我在瀏覽器中輸入網址:http://localhost:8080/example/student?name=myname 這樣的系統打印結果:名稱:MYNAME =>這是確定
第二次,我在瀏覽器中輸入url:http://localhost:8080/example/student 系統打印結果如下:name:null
爲什麼?你說過爲每個請求創建一個bean實例? 因此,第一次設置學生的名字是「myname」。第二次,當我再次請求時,如果創建了單個bean實例,學生的名字必須是「myname」,因爲它是在第一次請求中設置的?但在我的情況下,第二次請求似乎是一個新的bean實例被創建?所以name值爲null
非常感謝
如果我刪除 「ApplicationContext的背景= 新的ClassPathXmlApplicationContext(新的String [] {」 MVC-調度-servlet.xml中「}) ;」並使用「@Autowired私人學生」,然後爲每個請求創建一個bean實例。任何想法? –