【发布时间】:2019-07-28 22:23:43
【问题描述】:
我有一个控制器,定义如下:
@RestController
public class DemoController {
@Autowired
PrototypeBean proto;
@Autowired
SingletonBean single;
@GetMapping("/test")
public String test() {
System.out.println(proto.hashCode() + " "+ single.hashCode());
System.out.println(proto.getCounter());
return "Hello World";
}
}
我已经定义了原型bean如下:
@Component
@Scope(value= ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public class PrototypeBean {
static int i = 0;
public int getCounter() {
return ++i;
}
}
每次我点击http://localhost:8080/test 我得到相同的实例,并且计数器每次都会递增。 如何确保每次都能获得新实例? 此外,我想知道为什么即使我已将 bean 的范围声明为 Prototype,我也没有获得新实例。
【问题讨论】:
标签: java spring spring-boot spring-mvc oop