- 讲师:刘萍萍 / 谢楠
- 课时:160h
- 价格 4580 元
特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关
配套通关班送国网在线题库一套
在容器ConfigurableBeanFactory接口中定义了Bean工厂有关Scope注册的相关方法,使得可往Bean工厂中加入新类型的Bean。
void registerScope(String scopeName, Scope scope);//往Bean工厂中添加一个新的范围(默认只有两种范围:singleton及prototype)
}
在AbstractFactoryBean的getBean方法中实现了对特定Scope Bean支持,核心代码
String scopeName = mergedBeanDefinition.getScope();//取得当前Bean的范围,也即在定义中的scope="request"的部分。
if (scope == null) {
}
//使用scope.get(beanName,ObjectFactory)从指定的范围中得到或创建Bean实例
public Object getObject() throws BeansException {
try {
}
afterPrototypeCreation(beanName);//后拦截
}
bean = getObjectForBeanInstance(scopedInstance, name, mergedBeanDefinition);//返回正确类型的Bean实例
catch (IllegalStateException ex) {
}
在WebApplicationContext中定义常量 String SCOPE_REQUEST = "request"; String SCOPE_GLOBAL_SESSION = "globalSession"; 然后在所有类型的Web应用上下文的实现中,都在Bean工厂的拦载过程中通过postProcessBeanFactory方法来注册新类型Scope,如GenericWebApplicationContext、StaticWebApplicationContext、AbstractRefreshableWebApplicationContext等WebApplication应用上下文实现中。 beanFactory.registerScope(SCOPE_REQUEST, new RequestScope());//注册request类型的Bean beanFactory.registerScope(SCOPE_GLOBAL_SESSION, new SessionScope(true));//注册glogalsession 的Bean |
责编:罗莉
课程专业名称 |
讲师 |
课时 |
查看课程 |
---|
课程专业名称 |
讲师 |
课时 |
查看课程 |
---|
点击加载更多评论>>