我想创建一个可以分为多个模块的应用程序,它们各自具有路由功能。用户可以从应用程序主模块打开和关闭这些模块。
应该为主要模块提供已启用模块的列表:
var enabledModules = [...];
angular.module('app', ['thirdParty', 'app.common'].concat(enabledModules));
显然,enabledModules
无法正常加载array $http
,因为此时应用程序尚未启动。XHR或服务器端模板可用于定义它。
或者,可以使用单独的应用程序加载先决条件。由于使用了DI,因此可以对其进行全面测试。
angular.module('app', ['thirdParty', 'app.common']);
angular.module('appInitializer', [])
.factory('loader', ($http) => {
return $http.get('enabled-modules').then((result) => result.data);
})
.factory('initializer', (loader, $document) => {
return loader.then((enabledModules) => {
$document.ready(() => {
angular.bootstrap($document.find('body'), ['app'].concat(enabledModules));
});
});
});
angular.injector(['ng', 'appInitializer'])
.get('initializer')
.catch((err) => console.error(err));
场景:我将尝试与EIP手册中的贷款经纪人示例进行类比 客户发送报价请求 (贷款经纪人向信贷局索取客户信用评分) 贷款经纪人向每家银行发送报价请求 问题 在我的例子中,点1和2处于相同的骆驼上下文(或osgi束) 每个银行都有一个单独的捆绑包,通过核磁共振将endpoint暴露给贷款经纪人捆绑包 贷款经纪捆绑包不知道银行的事先,因为我们不断与新的银行合作,然后 我做过的事 创建了一个注册表类,并在l
web.xml模块 使用上述定义的注解,使得 web.xml 的使用变为可选。然而,对于覆盖默认值或使用注解设置的值,仍然需要使用部署描述符。如前所述,如果 web.xml 描述符中的 metadata-complete 元素设置为 true,则存在于 class 文件和绑定在 jar 包中的 web-fragments 中的指定部署信息的注解将不被处理。这意味着,所有应用的元数据通过 web.x
文件和文件夹设置 生成的应用程序文件夹将如下所示: 应用程序文件夹 应用程序配置存储在不同的位置,一些位于config文件夹中,如测试配置,一些存储在项目根目录中,如linting信息和构建信息。 CLI将应用程序特定的文件存储在src文件夹中,并将Angular 2特定的代码存储在src / app文件夹中。 CLI生成的文件和文件夹将遵循官方样式指南。 警告:CLI依赖配置文件中定义的某些设置
2018年5月24日更新:我们现在有3个版本的Angular从我原来的帖子,仍然没有一个最终可行的解决方案。Lars Meijdam(@LarsMeijdam)提出了一个有趣的方法,当然值得一看。(由于专有问题,他不得不临时删除他最初发布样本的GitHub存储库。但是,如果您想要副本,您可以直接给他发消息。有关更多信息,请参阅下面的评论。) Angular 6最近的架构变化确实让我们更接近解决方案
问题内容: 我想创建一个可以用插件扩展的Java程序。我该怎么办?我应该在哪里找? 我有一组插件必须实现的接口,它应该在jar中。该程序应在相对(相对于该程序)文件夹中监视新的jar,并以某种方式注册它们。 尽管我确实喜欢Eclipse RCP,但我认为这对于我的简单需求来说实在太多了。 对于Spring同样适用,但是既然我还是要研究它,我不妨尝试一下。 但是,我仍然希望找到一种方法来尽可能简单地
背景 在 Apache ShardingSphere 中,很多功能实现类的加载方式是通过 SPI(Service Provider Interface) 注入的方式完成的。 SPI 是一种为了被第三方实现或扩展的 API,它可以用于实现框架扩展或组件替换。 挑战 可插拔架构对程序架构设计的要求非常高,需要将各个模块相互独立,互不感知,并且通过一个可插拔内核,以叠加的方式将各种功能组合使用。 设计一