我应该在哪里创建新的实体——是否在表示层中



由于我刚刚学习Java的所有成果和我想找到的一切,有一件事在我的脑海中盘旋了一段时间。下面的代码是两个不同类中的两个方法的快速示例。第一个显然是某个页面的控制器,而另一个则是服务的一部分。

@RequestMapping("/something)
public void doSomething() {
    ...
    SomeEntity example = new SomeEntity();
    example.setAccount(account);
    example.setSmthElse(else);
    example.setDate(new Date());
    example.setSomething(something);
    someService.saveSomeEntity(example);
}
... 
public void saveSomeEntity(SomeEntity object) {
    someEntityDAO.save(object);
}

因此,我的问题是,新实体SomeEntity的创建和属性的设置应该在上面的表示层部分中完成,还是应该在saveSomeEntity方法中通过将所有参数传递给它来完成?

控制器不是表示层。它是MVC中的C。持久性层应该只关注持久性,而不是模型对象的创建。上面的代码还可以。有些人会在服务中创建对象,而不是在控制器中,但参数在控制器中很容易获得,所以IMHO是可以接受的。

是的,实体可以在任何层创建。

有些人更喜欢DTO(具有相同结构的单独对象),然后将其转换为实体。

只需避免在jsp中编写java代码。实例化控制器中的对象,或者将其留给某个绑定机制。

相关内容

  • 没有找到相关文章

最新更新