为Spring MVC中的每个控制器请求创建了不同的对象

时间:2017-03-11 15:00:11

标签: spring controller singleton

尝试了一些东西 - Crated一个简单的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.";

这里我从不同的浏览器访问了你好的url,我得到了#34; ok"打印,即使我在测试方法中更改它, 我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

你没有改变它。您正在创建新控制器,并更改该新控制器的字段。

替换

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

通过

ok = "changed.";

(并使ok变量变为volatile,否则另一个线程仍有可能看到旧值,尽管这不太可能。)