diff --git a/dubbo-admin-server/pom.xml b/dubbo-admin-server/pom.xml index de8186dcad17cd5061826c62ec5de03f99be2c41..f7e11259fabb25a0fb29a512d0e47f6055f166c1 100644 --- a/dubbo-admin-server/pom.xml +++ b/dubbo-admin-server/pom.xml @@ -41,6 +41,10 @@ spring-boot-starter-web + + org.springframework.boot + spring-boot-starter-data-jpa + org.springframework.boot diff --git a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/DubboAdminApplication.java b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/DubboAdminApplication.java index e12b0ca1952b60b15e6fe31c73674fd830b66ac0..4f73eae9bde2c7f0eb6b0d0cefb6925c44fcf61f 100644 --- a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/DubboAdminApplication.java +++ b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/DubboAdminApplication.java @@ -19,8 +19,12 @@ package org.apache.dubbo.admin; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; -@SpringBootApplication +@SpringBootApplication(exclude={ + DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class +}) public class DubboAdminApplication { public static void main(String[] args) { diff --git a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/controller/ServiceController.java b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/controller/ServiceController.java index c8a04b21b620859b905c13edd78c6e628e86b12f..e1b86798b5fffd499ada61fd9efc4bc7955b7d33 100644 --- a/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/controller/ServiceController.java +++ b/dubbo-admin-server/src/main/java/org/apache/dubbo/admin/controller/ServiceController.java @@ -29,6 +29,9 @@ import org.apache.dubbo.admin.service.ProviderService; import org.apache.dubbo.metadata.definition.model.FullServiceDefinition; import org.apache.dubbo.metadata.identifier.MetadataIdentifier; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -37,6 +40,7 @@ import org.springframework.web.bind.annotation.RestController; import java.util.List; import java.util.Set; +import java.util.stream.Collectors; @RestController @RequestMapping("/api/{env}") @@ -54,9 +58,21 @@ public class ServiceController { } @RequestMapping( value = "/service", method = RequestMethod.GET) - public Set searchService(@RequestParam String pattern, - @RequestParam String filter,@PathVariable String env) { - return providerService.getServiceDTOS(pattern, filter, env); + public Page searchService(@RequestParam String pattern, + @RequestParam String filter, + @PathVariable String env, + Pageable pageable) { + final Set serviceDTOS = providerService.getServiceDTOS(pattern, filter, env); + + final int total = serviceDTOS.size(); + final List content = + serviceDTOS.stream() + .skip(pageable.getOffset()) + .limit(pageable.getPageSize()) + .collect(Collectors.toList()); + + final Page page = new PageImpl<>(content, pageable, total); + return page; } @RequestMapping(value = "/service/{service}", method = RequestMethod.GET) diff --git a/dubbo-admin-ui/src/components/ServiceSearch.vue b/dubbo-admin-ui/src/components/ServiceSearch.vue index 92880096d13b13980469c7ec0088e3505a81ae05..0b38e27960a083db950a73d4e365573d63cdd19f 100644 --- a/dubbo-admin-ui/src/components/ServiceSearch.vue +++ b/dubbo-admin-ui/src/components/ServiceSearch.vue @@ -69,10 +69,12 @@