spring Sping Boot 应用程序中的Singleton作用域行为

o2gm4chl  于 2023-08-02  发布在  Spring
关注(0)|答案(1)|浏览(98)

我想问一个关于 Spring Bean 的问题。
假设我们有一个简单的Sping Boot 应用程序,在那里我们有一个@RestController类。我想知道为什么这个previousFruitName没有改变并且保持为null。就像如果我们有一个singleton bean,那么它应该记得第一次运行的previousFruitName once /api 1。它当前的行为是保持为null。

@RestController
public class Class1{
    private String previousFruitName = null;
    
    @GetMapping("/api1")
    public String method1(@RequestParam String newFruitName){
        
        System.out.println("previous fruit is "+previousFruitName + " and new fruit name is " + newFruitName);
        previousFruitName=newFruitName;
        return "ok";
    }
}

字符串

guicsvcw

guicsvcw1#

您的示例如您所期望的那样工作。只有私有类字段需要类型定义为String。

@RestController
@SpringBootApplication
public class Application {
    private String previousFruitName = null;

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @GetMapping("/api1")
    public String method1(@RequestParam String newFruitName){
        System.out.println("previous fruit is "+previousFruitName + " and new fruit name is " + newFruitName);
        previousFruitName=newFruitName;
        return "ok";
    }
}

字符串

相关问题