我正在使用spring 3,我有两个视图范围的bean:
1- Bean1:
@Component("bean1")
@Scope("view")
public class Bean1 {
@Autowired
private Bean2 bean2;
}
Run Code Online (Sandbox Code Playgroud)
2- Bean2:
@Component("bean2")
@Scope("view")
public class Bean2 {
@Autowired
private Bean1 bean1;
}
Run Code Online (Sandbox Code Playgroud)
视图是自定义范围:
<bean class="org.springframework.beans.factory.config.CustomScopeConfigurer">
<property name="scopes">
<map>
<entry key="view">
<bean class="${project.groupId}.utils.ViewScope" />
</entry>
</map>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
这是自定义视图范围的代码:
public class ViewScope implements Scope {
@SuppressWarnings("rawtypes")
public Object get(String name, ObjectFactory objectFactory) {
Map<String, Object> viewMap = FacesContext.getCurrentInstance()
.getViewRoot().getViewMap();
if (viewMap.containsKey(name)) {
return viewMap.get(name);
} else {
Object object = objectFactory.getObject();
viewMap.put(name, object);
return object; …Run Code Online (Sandbox Code Playgroud)