外部化角度配置文件(config.json)

时间:2020-08-31 15:10:48

标签: angular automation configuration devops reverse-proxy

我有一个在jboss应用程序服务器上运行的有角度的应用程序(war格式)。我的实际体系结构是:前端应用程序(angular)和后端应用程序(java),前端使用src / conf / config.json文件中提供的rest api链接回调服务。 这是我的应用程序配置文件:

{
"restApiUrl": "https://jboss_host:8443/back/rest/",
"ldapAuthentication" : true
}

所以,我现在的需求(客户需求)是外部化此配置文件,以轻松更改其余api链接,而无需进行重建或重新部署过程。

我无法在体系结构中使用任何其他元素(revers-proxy,conf服务器),因为它将成为客户端生产或api数据库的难题(数据库连接由后台服务提供)。

请告知。

2 个答案:

答案 0 :(得分:0)

如果您不想通过http加载配置文件,请尝试使用config.js文件。

config.json重命名为config.js并将内容更改为此:

var config = {
  "restApiUrl": "https://jboss_host:8443/back/rest/",
  "ldapAuthentication" : true
}

然后将配置文件包含到应用程序中的index.html中:

<script type="text/javascript" src="config.js"></script>

在角度应用程序中,您可以通过(<any>window).config访问此配置。

为了更方便地使用,请创建ConfigService,例如:

@Injectable({providedIn: 'root'})
export class ConfigService {
  getConfig(): Config { // You should create some model of your config too or you can use 'any'
    return (<any>window).config;
  }
}

答案 1 :(得分:0)

@mpstv感谢您的重放。 通过使用Java servlet的强大功能,我能够解决此问题。解决方案是在项目战中添加WEB-INF文件夹(servlet.class + web.xml),该文件夹将从文件系统中收取配置文件的费用,并在HTTP调用时将其提供给有角度的人。