Commit bd4c32c6 authored by Java—KA—李 青's avatar Java—KA—李 青

加入获取handler锁

parent c5eb066a
...@@ -3,6 +3,7 @@ package cn.quantgroup.xyqb.service.register; ...@@ -3,6 +3,7 @@ package cn.quantgroup.xyqb.service.register;
import cn.quantgroup.xyqb.service.register.handler.AbstractUserRegisterHandler; import cn.quantgroup.xyqb.service.register.handler.AbstractUserRegisterHandler;
import cn.quantgroup.xyqb.util.ApplicationContextHolder; import cn.quantgroup.xyqb.util.ApplicationContextHolder;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeansException; import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationContextAware;
...@@ -12,11 +13,12 @@ import java.util.Map; ...@@ -12,11 +13,12 @@ import java.util.Map;
/** /**
* Created by liqing on 2017/12/5 0005. * Created by liqing on 2017/12/5 0005.
*/ */
@Slf4j
public abstract class AbstractUserRegisterService implements IUserRegisterService,ApplicationContextAware { public abstract class AbstractUserRegisterService implements IUserRegisterService,ApplicationContextAware {
private static Map<String, AbstractUserRegisterHandler> userRegisterHandlerMap = Maps.newConcurrentMap(); private static Map<String, AbstractUserRegisterHandler> userRegisterHandlerMap = Maps.newConcurrentMap();
private static final String USER_REGISTER_HANDLER_DEFAULT_KEY = "default"; private static final String USER_REGISTER_HANDLER_DEFAULT_KEY = "register_default";
private static final String USER_REGISTER_HANDLER_EXT_KEY = "ext"; private static final String USER_REGISTER_HANDLER_EXT_KEY = "register_ext";
@Override @Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
...@@ -76,7 +78,12 @@ public abstract class AbstractUserRegisterService implements IUserRegisterServic ...@@ -76,7 +78,12 @@ public abstract class AbstractUserRegisterService implements IUserRegisterServic
protected AbstractUserRegisterHandler getDefaultUserRegisterHandler(){ protected AbstractUserRegisterHandler getDefaultUserRegisterHandler(){
AbstractUserRegisterHandler curUserRegisterHandler = userRegisterHandlerMap.get(USER_REGISTER_HANDLER_DEFAULT_KEY); AbstractUserRegisterHandler curUserRegisterHandler = userRegisterHandlerMap.get(USER_REGISTER_HANDLER_DEFAULT_KEY);
if (curUserRegisterHandler == null){ if (curUserRegisterHandler == null){
curUserRegisterHandler = createDefaultUserRegisterHandler(ApplicationContextHolder.getApplicationContext()); synchronized (USER_REGISTER_HANDLER_DEFAULT_KEY){
curUserRegisterHandler = userRegisterHandlerMap.get(USER_REGISTER_HANDLER_DEFAULT_KEY);
if (curUserRegisterHandler == null){
curUserRegisterHandler = createDefaultUserRegisterHandler(ApplicationContextHolder.getApplicationContext());
}
}
} }
return curUserRegisterHandler; return curUserRegisterHandler;
} }
...@@ -88,8 +95,14 @@ public abstract class AbstractUserRegisterService implements IUserRegisterServic ...@@ -88,8 +95,14 @@ public abstract class AbstractUserRegisterService implements IUserRegisterServic
protected AbstractUserRegisterHandler getExtUserRegisterHandler(){ protected AbstractUserRegisterHandler getExtUserRegisterHandler(){
AbstractUserRegisterHandler curUserRegisterHandler = userRegisterHandlerMap.get(USER_REGISTER_HANDLER_EXT_KEY); AbstractUserRegisterHandler curUserRegisterHandler = userRegisterHandlerMap.get(USER_REGISTER_HANDLER_EXT_KEY);
if (curUserRegisterHandler == null){ if (curUserRegisterHandler == null){
curUserRegisterHandler = createExtUserRegisterHandler(ApplicationContextHolder.getApplicationContext()); synchronized (USER_REGISTER_HANDLER_EXT_KEY){
curUserRegisterHandler = userRegisterHandlerMap.get(USER_REGISTER_HANDLER_EXT_KEY);
if (curUserRegisterHandler == null){
curUserRegisterHandler = createExtUserRegisterHandler(ApplicationContextHolder.getApplicationContext());
}
}
} }
return curUserRegisterHandler; return curUserRegisterHandler;
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment