Explorar el Código

configservice : 消除 ServiceController.java 中的重复代码 (#1925)

zoltar1993 hace 6 años
padre
commit
7e4ba42289

+ 12 - 33
apollo-configservice/src/main/java/com/ctrip/framework/apollo/metaservice/controller/ServiceController.java

@@ -25,18 +25,7 @@ public class ServiceController {
   @RequestMapping("/meta")
   public List<ServiceDTO> getMetaService() {
     List<InstanceInfo> instances = discoveryService.getMetaServiceInstances();
-    List<ServiceDTO> result = instances.stream().map(new Function<InstanceInfo, ServiceDTO>() {
-
-      @Override
-      public ServiceDTO apply(InstanceInfo instance) {
-        ServiceDTO service = new ServiceDTO();
-        service.setAppName(instance.getAppName());
-        service.setInstanceId(instance.getInstanceId());
-        service.setHomepageUrl(instance.getHomePageUrl());
-        return service;
-      }
-
-    }).collect(Collectors.toList());
+    List<ServiceDTO> result = instances.stream().map(InstanceInfo_To_ServiceDTO_Func).collect(Collectors.toList());
     return result;
   }
 
@@ -45,36 +34,26 @@ public class ServiceController {
       @RequestParam(value = "appId", defaultValue = "") String appId,
       @RequestParam(value = "ip", required = false) String clientIp) {
     List<InstanceInfo> instances = discoveryService.getConfigServiceInstances();
-    List<ServiceDTO> result = instances.stream().map(new Function<InstanceInfo, ServiceDTO>() {
-
-      @Override
-      public ServiceDTO apply(InstanceInfo instance) {
-        ServiceDTO service = new ServiceDTO();
-        service.setAppName(instance.getAppName());
-        service.setInstanceId(instance.getInstanceId());
-        service.setHomepageUrl(instance.getHomePageUrl());
-        return service;
-      }
-
-    }).collect(Collectors.toList());
+    List<ServiceDTO> result = instances.stream().map(InstanceInfo_To_ServiceDTO_Func).collect(Collectors.toList());
     return result;
   }
 
   @RequestMapping("/admin")
   public List<ServiceDTO> getAdminService() {
     List<InstanceInfo> instances = discoveryService.getAdminServiceInstances();
-    List<ServiceDTO> result = instances.stream().map(new Function<InstanceInfo, ServiceDTO>() {
+    List<ServiceDTO> result = instances.stream().map(InstanceInfo_To_ServiceDTO_Func).collect(Collectors.toList());
+    return result;
+  }
 
+  private static Function<InstanceInfo, ServiceDTO> InstanceInfo_To_ServiceDTO_Func = new Function<InstanceInfo, ServiceDTO>() {
       @Override
       public ServiceDTO apply(InstanceInfo instance) {
-        ServiceDTO service = new ServiceDTO();
-        service.setAppName(instance.getAppName());
-        service.setInstanceId(instance.getInstanceId());
-        service.setHomepageUrl(instance.getHomePageUrl());
-        return service;
+          ServiceDTO service = new ServiceDTO();
+          service.setAppName(instance.getAppName());
+          service.setInstanceId(instance.getInstanceId());
+          service.setHomepageUrl(instance.getHomePageUrl());
+          return service;
       }
+  };
 
-    }).collect(Collectors.toList());
-    return result;
-  }
 }