@Service
@Scope("prototype")
public class DemoService implements BeanNameAware{
private String beanName;
public void outputResult() {
System.out.println("获取bean:"+this+",beanName:"+beanName);
}
@Override
public void setBeanName(String name) {
this.beanName = name;
}
}
获取demoService的示例
public void newBean() {
ThreadPoolExecutor executor = (ThreadPoolExecutor) Executors.newCachedThreadPool();
for (int i = 0; i < 5; i++) {
executor.execute(new Runnable() {
@Override
public void run() {
DemoService demo = context.getBean(DemoService.class);
demo.outputResult();
}
});
}
}
每一次获取到的beanName都是demoService,觉得获取到的不是bean的id而是bean的name,所以在并发获取多个实例的时候每个bean的id应该是什么?不是不应该重复吗?