我的serverName
java类中有一个配置属性AppConfig
,它从cloud config client
获取值。此serverName
值在Java
类和AngularJS Services
中使用。此serverName
具有不同环境的不同值。
目前,我正在使用pcf spring cloud config
,其中不同的配置文件具有不同的值。所以访问Java
的{{1}}类没有问题,但在serverName
我{strong> AngularJS service
manually changing
相应的serverName
值environment
在将其部署到相应环境之前的值。
是否可以访问serverName
AppConfig
AngularJS Service
属性到我的@EnableConfigurationProperties
@ConfigurationProperties
@RefreshScope
@Configuration
public class AppConfig {
@Value("${external.server.name}")
private String serverName;
}
?
external:
server:
name: localName
application.yml
angular.module('myApp').factory('myService', ['$http', '$q', '$window', function($http, $q, $window){
var serverName = 'localName';
// for each env deployment make sure the developer changes the value to respective env value, if not the service will fail
.....
}
my_service.js
tail recursive
答案 0 :(得分:3)
您可以创建自己的REST控制器,例如/ config,它返回服务器名称以及客户端可能需要的任何其他内容。 在此控制器中,您可以像在AppConfig中那样注入服务器名称。
更简单 如果您已经有一个控制器,在您需要服务器名称之前通过角度调用,您可以设置一个标题,例如' x-server-name'与值有关。
答案 1 :(得分:1)
斯特凡的回答对你想做的事情很有用。但如果它是您的应用程序服务器,您不应该需要服务器地址。 $http.get('api/getUser')
与$http.get(servername + '/api/getUser')
相同。如果您需要超出"服务器名称的任何其他服务器端属性"在客户端;那么你可以申请斯特凡的答案。