|
@@ -2,14 +2,21 @@ package org.hswebframework.web.authorization.simple;
|
|
|
|
|
|
import org.hswebframework.web.authorization.access.CustomDataAccessConfig;
|
|
|
import org.hswebframework.web.authorization.access.DataAccessController;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.util.ClassUtils;
|
|
|
|
|
|
/**
|
|
|
* @author zhouhao
|
|
|
*/
|
|
|
public class SimpleCustomDataAccessConfigConfig extends AbstractDataAccessConfig implements CustomDataAccessConfig {
|
|
|
|
|
|
+ private static final long serialVersionUID = -8754634247843748887L;
|
|
|
+
|
|
|
private String classOrBeanName;
|
|
|
|
|
|
+ private static Logger logger = LoggerFactory.getLogger(CustomDataAccessConfig.class);
|
|
|
+
|
|
|
private transient DataAccessController instance;
|
|
|
|
|
|
public SimpleCustomDataAccessConfigConfig() {
|
|
@@ -17,21 +24,17 @@ public class SimpleCustomDataAccessConfigConfig extends AbstractDataAccessConfig
|
|
|
|
|
|
public SimpleCustomDataAccessConfigConfig(String classOrBeanName) {
|
|
|
this.classOrBeanName = classOrBeanName;
|
|
|
+ try {
|
|
|
+ instance = (DataAccessController) ClassUtils.forName(getClassOrBeanName(), this.getClass().getClassLoader()).newInstance();
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("init CustomDataAccessConfig error", e);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public DataAccessController getController() {
|
|
|
if (instance == null) {
|
|
|
- synchronized (this) {
|
|
|
- // TODO: 17-2-8 spring bean not support now!
|
|
|
- if (instance == null) {
|
|
|
- try {
|
|
|
- instance = (DataAccessController) Class.forName(classOrBeanName).newInstance();
|
|
|
- } catch (Exception e) {
|
|
|
- throw new RuntimeException(e);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ throw new UnsupportedOperationException(new ClassNotFoundException(classOrBeanName));
|
|
|
}
|
|
|
return instance;
|
|
|
}
|