package com.moon.server.helper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.moon.server.mapper.all.BasicMapper; import com.moon.server.mapper.all.GeomBaseMapper; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.aop.support.AopUtils; import java.lang.reflect.Type; @SuppressWarnings("ALL") public class ClassHelper { private final static Log log = LogFactory.getLog(ClassHelper.class); public static Object createInstance(String className) { try { Class clazz = Class.forName(className); Object obj = clazz.newInstance(); return obj; } catch (Exception ex) { log.error(ex.getMessage(), ex); return null; } } public static Object getBean(String className) { try { Object obj = SpringContextHelper.getBean(className); return obj; } catch (Exception ex) { log.error(ex.getMessage(), ex); return null; } } public static BasicMapper getBasicMapper(String name) { if (StringHelper.isEmpty(name)) { return null; } Object obj = getBean(name.trim() + "Mapper"); if (!(obj instanceof BasicMapper)) { return null; } return (BasicMapper) obj; } public static GeomBaseMapper getGeoBaseMapper(String name) { if (StringHelper.isEmpty(name)) { return null; } Object obj = getBean(name.trim() + "Mapper"); if (!(obj instanceof GeomBaseMapper)) { return null; } return (GeomBaseMapper) obj; } public static String getClassName(BaseMapper baseMapper) { Type[] genericInterfaces = AopUtils.getTargetClass(baseMapper).getGenericInterfaces(); return genericInterfaces[0].getTypeName(); } public static Class getEntityClass(String className) { try { className = className.replace(".mapper", ".entity").replace("Mapper", "Entity"); Class clazz = Class.forName(className); return clazz; } catch (Exception ex) { log.error(ex.getMessage(), ex); return null; } } public static Object createEntityByMapper(BaseMapper baseMapper) { String className = getClassName(baseMapper); className = className.replace(".mapper", ".entity").replace("Mapper", "Entity"); return createInstance(className); } }