Загрузить настройки приложения из внешнего файла - PullRequest
0 голосов
/ 17 мая 2018

Я разрабатываю одностраничное приложение на Angular, которое будет соединяться с внешними сервисами.Однако я не даю никаких гарантий, что путь к этим услугам останется прежним.Моя цель - сохранить эти настройки во внешнем файле настроек, чтобы я мог обновлять их на лету без необходимости перекомпиляции и повторного развертывания приложения при каждом изменении пути.

В Java с использованием Spring Framework с использованием файлов .propertiesэто будет что-то вроде

public class RemoteService{
    @Value("${removeservice.address}")
    private String address;

    // Class logic
}

Как я могу сделать то же самое в Java?

1 Ответ

0 голосов
/ 17 мая 2018

[OLD]

В angular у вас есть файлы "среды", которые позволяют хранить некоторые данные, такие как URL-адреса ваших API, см.

, как в этом примере: в вашем файле src / environment / environment.dev.ts вы можете выставить константу, например:

export const environment = {
    apiUrl: 'http://my-api.domain.com'
}

, который можно использовать как

import { environment } from '../environments/environment';

export class MyService{

    private url = environment.apiUrl;

}

ps: вы должны указать angular-файлы вашей среды в angular-cli.json

"apps": [
***
"environmentSource": "environments/environment.ts",
"environments":{
    "dev": "environments/environment.dev.ts"
}
***
}

и если вы действительно хотите сохранитьваш синтаксис Java вы можете найти создать "декоратор" javascript

[EDITED]

Я не думаю, что есть реальное решение, вы можете сделать это вручнуюЧтобы избежать перестройки, создайте другой файл конфигурации (не в средах) и загрузите данные этого файла конфигурации в службу до инициализации приложения, используя маркер «APP_INITIALIZER» при предоставлении службы.

youможете найти пример, чтобы попробовать здесь: https://stackblitz.com/edit/angular-config-at-runtime

Скажите, помогло ли это вам.

РешениеПришел от моего сотрудника Джонатана Антуана , не мой код, вы можете найти пост в блоге об этом здесь (предупреждение, что это на французском языке, но вы можете увидеть код): https://blogs.infinitesquare.com/posts/web/angular-ajouter-une-configuration-chargee-au-runtime-post-build-plutot-que-pendant-la-build

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...