2017-03-11 4 views
0

試してみましたか?単純なSpring mvcアプリケーションを作成しました。コントローラクラスがあります。私は春のドキュメントでコントローラのクラスがシングルトーンであり、単一インスタンスが作成されていると読んでいますが、試してみるとそうではありません。ここSpring MVCでコントローラのリクエストごとに異なるオブジェクトが作成されました

@Controller 
public class TestController { 
    String message = "Welcome to your 1st Maven Spring project !"; 
    @Autowired 
    private Person person; 
    String ok="ok"; 

    @RequestMapping("/hello") 
    public String test() throws InterruptedException { 
     System.out.println("word s "+ok); 
     System.out.println("from controller"); 
     System.out.println(person.getName()); 
     new TestController().ok="changed."; 

私は別のブラウザからhello URLにアクセスし、私は「OK」 は、私が何かをしないのです、私は試験方法でそれを変更していても、印刷されたばかりですか?

答えて

0

あなたはそれを変更していません。新しいコントローラを作成し、その新しいコントローラのフィールドを変更しています。

は(そうでないことがほとんどありませんが、別のスレッドが、古い値を見ている可能性がまだある、とok変数揮発させる)

ok = "changed."; 

によって

new TestController().ok="changed."; 

を交換してください。

+0

私の日、thnxを作った。 – parameswar

+0

haveone。もっと疑問に思うかもしれないhttp://stackoverflow.com/questions/42725862/ – parameswar

関連する問題