package com.alibaba.doris.admin.core; import org.apache.commons.lang.StringUtils; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.alibaba.doris.admin.service.AdminNodeService; import com.alibaba.doris.admin.service.AdminService; import com.alibaba.doris.admin.service.ConsistentReportService; import com.alibaba.doris.admin.service.MonitorService; import com.alibaba.doris.admin.service.NamespaceService; import com.alibaba.doris.admin.service.NodeValidatorService; import com.alibaba.doris.admin.service.PropertiesService; import com.alibaba.doris.admin.service.RouteConfigService; import com.alibaba.doris.admin.service.SystemLogService; import com.alibaba.doris.admin.service.UserService; import com.alibaba.doris.admin.service.VirtualNodeService; public class AdminServiceLocator { private static ApplicationContext context; static { context = new ClassPathXmlApplicationContext("classpath:spring/doris_service_context.xml"); } public static AdminService getAdminService() { return (AdminService) context.getBean("adminService"); } public static AdminNodeService getAdminNodeService() { return (AdminNodeService) context.getBean("adminNodeService"); } public static RouteConfigService getRouteConfigService() { return (RouteConfigService) context.getBean("routeConfigService"); } public static NamespaceService getNamespaceService() { return (NamespaceService) context.getBean("namespaceService"); } public static VirtualNodeService getVirtualNodeService() { return (VirtualNodeService) context.getBean("virtualNodeService"); } public static UserService getUserService() { return (UserService) context.getBean("userService"); } public static MonitorService getMonitorService() { return getService(MonitorService.class); } public static PropertiesService getPropertiesService() { return (PropertiesService) context.getBean("propertiesService"); } public static NodeValidatorService getNodeValidatorService() { return (NodeValidatorService) context.getBean("nodeValidatorService"); } public static SystemLogService getSystemLogService() { return (SystemLogService) context.getBean("systemLogService"); } public static ConsistentReportService getConsistentReportService() { return (ConsistentReportService) context.getBean("consistentReportService"); } /** * if not init use new ClassPathXmlApplicationContext( "classpath:/spring/doris_service_context.xml"); * * @param <T> * @param clazz * @return */ @SuppressWarnings("unchecked") public static <T> T getService(Class<T> clazz) { String beanName = StringUtils.uncapitalize(clazz.getSimpleName()); if (!beanName.endsWith("Service")) { return null; } return (T) context.getBean(beanName); } }