電子書籍の厳選無料作品が豊富!

Struts2にてスレッドセーフを勉強しており
以下のコードがスレッドセーフなのか、それともスレッドアンセーフなのかご意見を頂きたいと思います。
個人的な意見ですが、インスタンス変数を利用しているためスレッドアンセーフになるのではないかと思いますが間違いございませんでしょうか。

//以下 Struts2
public class InsertProgram extends ActionSupport implements ServletRequestAware{

private Test test= new Test();
private String id;
private String name;

public class execute(){
id     = request.getParameter("id");
name = request.getParameter("name");

       //以下がご意見を頂きたい箇所です。
test.setId(id);
test.setName(name);
test.insert();

return SUCCESS;
}

}




public class Test{

private String id;
private String name;

public String getId() { return id; }
public String getName() { return name; }

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


public class insert() {

//割愛致します。 データベースにid 及び name をinsert します。
sql = "Insert into test_db(id , name) ・・・"
}
}

A 回答 (1件)

Struts2はリクエスト毎にActionのインスタンスが生成されるから大丈夫なのですよ。



あと、idとnameはサクセッサを用意してあげれば、
request#getParameterなんか使わなくても、
ParametersInterceptorが詰め詰めしてくれるし、

ModelDrivenにしちゃえば、
ModelDrivenInterceptorが、
Testクラスにセットしてくれるよ。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

また、ModelDrivenや、ModelDrivenInterceptorについて情報を頂きありがとうございます。
解決致しました。

お礼日時:2012/09/24 09:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!