0

私はJavaのすべての成果と、しばらくの間頭の中で飛び交っていた1つのことを見つけたいと思っていたすべてを学んでいるところです。以下のコードは、2つの異なるクラスの2つのメソッドの簡単な例です。最初の1つは明らかに一部のページのコントローラーであり、もう1つはサービスの一部です。

@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それともすべてのパラメータをメソッドに渡すことによってメソッドで行う必要があるのか​​ということです。

4

2 に答える 2

3

コントローラはプレゼンテーション層ではありません。そのMVCのC。永続性レイヤーは、モデルオブジェクトの作成ではなく、永続性のみに関係する必要があります。上記のコードはOKです。コントローラーではなくサービスでオブジェクトを作成するものもありますが、パラメーターはコントローラーですぐに利用できるため、IMHOは受け入れられます。

于 2011-06-17T14:25:03.327 に答える
2

はい、エンティティはどのレイヤーでも作成できます。

一部の人々は、DTO(同じ構造を持つ別個のオブジェクト)を好み、それがエンティティに変換されます。

jspsでJavaコードを書くことは避けてください。コントローラ内のオブジェクトをインスタンス化するか、それを何らかのバインディングメカニズムに任せます。

于 2011-06-17T14:24:36.867 に答える