- factoryBean接口
- 自定义scope
- @PropertySource
- @CompoentScan
![](9、自定义scope和factoryBean.assets/image-20221216073958888.png
和第三章产生关系。
每一次调用都是新的实例。
protyoe
不管是相同线程多次调用getBean,还是多线程多次调用getBean,每次getBean拿到的实例都不一样。
public class CustomScope implements Scope {
private ThreadLocal local = new ThreadLocal();
@Override
public Object get(String name, ObjectFactory<?> objectFactory) {
if(local.get() != null) {
return local.get();
} else {
//创建实例
Object object = objectFactory.getObject();
local.set(object);
return object;
}
}
@Override
public Object remove(String name) {
Object o = local.get();
local.remove();
return o;
}
@Override
public void registerDestructionCallback(String name, Runnable callback) {
}
@Override
public Object resolveContextualObject(String key) {
return null;
}
@Override
public String getConversationId() {
return null;
}
}
什么时候注册进去的、