Först tar vi och lägger till ett target i sessionsbönan vi ska swappa den från:
public class Bean extends AbstractStatelessSessionBean implements SessionBean {
private HotSwappableTargetSource sessionContextTarget;
protected void onEjbCreate() throws CreateException {
BeanFactory beanFactory = getBeanFactory();
sessionContextTarget = = (HotSwappableTargetSource) beanFactory.getBean("hotswappableSessionContext");
}
}
samt att vi lägger till själva swappen i set-metoden:
@Override
public void setSessionContext(SessionContext sessionContext) {
super.setSessionContext(sessionContext);
this.sessionContextTarget.swap(sessionContext);
}
Därefer passar vi på att konfigurera den i springxmlen,
<bean id="sessionContextBean" class="nu.danielsundberg.FejkSessionContext"/>
<bean id="hotswappableSessionContext" class="org.springframework.aop.target.HotSwappableTargetSource">
<constructor-arg><ref local="sessionContextBean"/></constructor-arg>
</bean>
lägger till den injectad i vår andra böna vi vill ha access till contextet i
<property name="sessionsContext">och avslutar med att lägga till den i mottagande bönan.
<ref local="sessionContextBean"/>
</property>
private SessionContext sessionsContext;
public void setSessionsContext(SessionContext sessionsContext) {
this.sessionsContext = sessionsContext;
}
Och bob är min onkel.
Inga kommentarer:
Skicka en kommentar