Prerequisites

  • spring-boot 1.3.1.RELEASE

  • TypeScript 1.8.9

  • AngularJs 1.5.3

  • Zuul

我有一个api网关,它隐藏了一组微服务 . 这个api网关使用zuul将Urls映射到不同的微服务 .

zuul:
  routes:
service1:
  path: /service1/**
  serviceId: FIRST-MICROSERVICE
service2:
  path: /service2/**
  serviceId: SECOND-MICROSERVICE
service3:
  path: /service3/**
  serviceId: THIRD-MICROSERVICE

Question

我希望能够使用spring-boot在不同的端口上启动api网关,如下所示:

java -jar -Dserver.port=8081 myspringbootapplication.jar

主机应始终是从中传送angularjs应用程序的主机 . 问题是端口依赖于tomcat服务器的端口spring-boot startet . 目前 http://localhost:9001 是硬编码的 .

.factory('app.core.services.myApiResource', ['$resource', '$http',
        ($resource:ng.resource.IResourceService, $http:ng.IHttpService):ng.resource.IResourceClass<ng.resource.IResource<any>> => {
            var apiRoot : ng.resource.IResourceClass<ng.resource.IResource<any>>
                = $resource('http://localhost:9001/service1/myentity/search/:finderName');
            return apiRoot;
        }
    ])

在bootstrap.yml中,默认端口为9001

# Default ports
server.port: 9001

有没有办法将angularjs $ resource中的端口值设置为spring-boot server.port值?