在Spring MVC表单标签的情况下,我们可以自动装配java bean吗?

时间:2017-08-19 05:45:56

标签: java spring spring-mvc

我见过很多Spring MVC表单标签的例子,每一个都使用这样的代码:

class Student {
    private String firstName;
    private String lastName;

    // necessary getters and setters (ommited here)
}

现在在StudentController中,他们将Student对象创建为:

@Controller
class StudentController {
     @RequestMapping("/showForm")
     public String showForm(Model model) {
          model.addAttribute("student", new Student());
          return "show-form";
     }
}

我的问题是,我们可以制作学生的范围原型并使其成为StudentController的依赖项并使其自动装配,让Spring将它注入StudentController,如下所示:

@Controller
class StudentController {
     @Autowired
     Student student;

     @RequestMapping("/showForm")
     public String showForm(Model model) {
          model.addAttribute("student", student));
          return "show-form";
     }
}

这是我正在制作的有效点吗?如果没有,请解释。

1 个答案:

答案 0 :(得分:0)

该模型的唯一目的是将数据从视图传递到spring中的相应处理程序。模型是POJO,它是普通的旧对象,这意味着它只有getter和setter。在你的情况下假设你要做的是什么正在注入自动装配的依赖项。

1.如果模型是单例范围的。在应用程序启动期间创建对象.i意味着为什么要在应用程序启动期间创建一个没有用处的对象,其唯一目的是用作耦合数据的层。

2.如果模型是原型范围

@Component
@Scope("prototype")
public class Student {

private String name;

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}
}

为什么要写一个不必要的代码,而你可以用一个班轮

          model.addAttribute("student", new Student());

希望这有帮助。