問題タブ [plugin-architecture]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Web サービスをホストするサーバーとしての Swing アプリケーション
私はswingアプリケーションを持っています。基本的に私は「floreant pos」を使用し、私の要件に基づいてカスタマイズしました。ここで、Swing アプリケーションから行うのと同じ操作を、Rest Web サービスの形式で行いたいと考えています。
- Swing アプリケーションを開始するとき、モバイル アプリからアクセスできる Web サービスが必要です。
- Web サービスに対して同じ定義済みメソッドを使用する必要があります。
- 簡単に言えば、サーバーとしてのアプリケーションです。
上記は要件ですが、どのように達成できるかわかりません。さらに、彼らが 1.4 バージョンでリリースした「floreant pos」プラグイン アーキテクチャの詳細が必要なので、「floreant pos」のプラグイン アーキテクチャの理解を助けることができます。
ウェブサイト :- http://floreant.org/ ウィキ :- http://wiki.floreantpos.org/
私は長い間立ち往生しています。解決策を教えてください。
前もって感謝します
java - アプリケーションサーバーは同じクラスローダーでアプリを展開/展開解除できますか?
前提条件: この質問は、特定のアプリケーション サーバーとは関係ありません。設定された唯一の条件は、Java アプリケーション サーバー (Tomcat、JBoss、WebSphere など) に関するものであるということです。
質問: 1 つの機能を備えたアプリケーション サーバーにアプリケーションをデプロイしたいと考えています。そのためのプラグイン アーキテクチャを導入したいと考えています。つまり、たとえば、Tomcat で行う通常の方法で MAIN アプリケーションをデプロイしたいのですが、標準のアプリケーション サーバー機能を使用して、このアプリケーションに MODULES を動的に追加できるようにしたいと考えています。この操作の後、MAIN アプリケーションは MODULE からクラスをアドレス指定できる必要があります。たとえば、クラス名でクラスをインスタンス化したり、MODULE jar から構成を読み取ったりできる必要があります。
一部のアプリケーションサーバーでは可能ですか?
asp.net-mvc - Orchard にモデル ビュー コントローラーがないのはなぜですか?
私は果樹園で働いています。そのようなプロジェクトを書くことは私の夢です!..だから私はそれについての研究を始めました. オーチャードについて私が興味を持ったのは、オーチャードがmvcプロジェクトであるのに、なぜ彼のWebレイヤーソリューションにモデル、ビュー、およびコントローラーがないのですか? このCleanArchitecture
ような特定のアーキテクチャを使用しています か?
果樹園のドキュメントでこのケースについて知ろうとしましたが、それについての説明は見つかりませんでした.
angular - Typescript を使用して Webpack でモジュールを動的にロードする
プラグインをサポートする Web アプリを構築しようとしています。環境は Angular 2 (これまでのところ)、Typescript 2.1 および Webpack 2 です。プラグインがコンテンツを描画できる拡張ポイント (スロット) がいくつかあります。基本的にはコンポーネントがあります。実行時に既知の他のコンポーネントをホストできます (アイデアについては、「Angular 2 コンポーネントのマスター」の第 10 章を参照してください。実行時に Angular コンポーネントをコンパイルして「描画」する方法については、 SO + plunkerを参照してください)。
これが私が達成したいことです:
System.import
Webpackを使用して実行時にモジュールをインポートしていますが、非推奨であることはわかっていますimport
が、typescript自体ではまだサポートされていないため、typescriptを使用してモジュールを動的にインポートする唯一の方法です(こちらを参照)。(これを達成する他の方法はありますか?)
ここで、システムをテストするためだけに、以下のディレクトリ ツリーを使用して、プラグイン ディレクトリをアプリケーションの同じルート (src ディレクトリ) に含めました。これにより、webpack がコンパイル時にプラグイン コードの存在を認識し、プラグインとアプリケーションの両方を同じバンドルのセットにパックすることに注意してください。これは、プラグイン アーキテクチャ機能をテストするための簡略化です。フォルダ ツリーは次のとおりです。
このようにインポートするpluginA.plugin.ts
と、
System.import('relativePathToPluginA')
すべてが期待どおりに機能します。システムは、プラグイン コンポーネントをロードしてコンパイルし、それを使用することもできます。
しかし、実際のシナリオでは、コンパイル時にプラグインを認識してはならないため、angular-cli を使用して新しいプロジェクトを作成し、pluginA ディレクトリを追加してから、app.module で参照しました。次に、プロジェクトをビルドし、js 出力をフォルダーに移動しましたD:\pluginDist\
。次にmain.bundle.js
、以下の例のように、上記の loadPlugin メソッドから を参照しました (url = 'main.bundle.js' を使用)。
メイン バウンドルの参照が正しいかどうかはわかりませんが (Webpack の概念がいくつか欠けていることは確かです)、少なくともビルド アーティファクトであるため、試してみます。このように私はエラーがあります
Unhandled Promise rejection: Cannot find module 'D:\pluginDist\main.bundle.js'. ; Zone: angular ; Task: Promise.then ; Value:
私が行った他のテストは
プラグイン プロジェクトの *.ts ファイルをトランスパイルし、webpack をまったくスキップするので
tsc
、コマンド ラインに入力してpluginA.plugin.ts
トランスパイル結果をインポートしようとすると、上記と同じエラーが発生しました。開発 Web サーバーが実際にファイル (.tmp) を提供するフォルダーに js の結果 (webpack またはプレーン tsc 変換の両方) を配置し、相対パスを介してそれらを参照します。これにより、webpack がコンパイル時に停止します。もちろん、パッキング中にプロジェクト ディレクトリ ツリー内のファイルを見つけることはありません。
どこに行けばいいのかわからないのですが、何かアドバイスはありますか??
私が達成したいのは、コンパイル時に不明なjsモジュールであるwebpackとtypescriptを使用して、動的にロードすることです。
angularjs - 高度に分離されたプラグアンドプレイの複雑なコンポーネント用に Redux を構築する方法は?
私は Redux を初めて使用するので、自分のアプリケーションで使用したいと考えていますが、Redux 部分のアーキテクチャ/設計段階で立ち往生しています。これが私の要件と設計に関する私の推測です。
アプリケーションの詳細: AngularJS を使用した SPA。他のライブラリはng-redux、reselect、rxjsを使用しました。
コンポーネントの詳細: 大量のデータをレンダリングするための再利用可能なグリッド コンポーネント。
私の考え: グリッドのすべての内部コンポーネントが、検索、並べ替え、行、ヘッダー、セルなどの親/構成コンポーネントから独立している、プラグ アンド プレイのようなコンポーネント ベースのアーキテクチャを作成します。
すべてのコンポーネントには、ストアからの独自のレデューサー、アクション、セレクター、および状態のスライスのセットがあります。
すべてのコンポーネントには独自のレデューサーがあり、オンデマンドでプラグインできるため、それらを 1 か所に蓄積するのではなく、遅延してストアに登録する必要があります。
検索、並べ替え、独自の状態を持つコンポーネントなどの一部のコンポーネントは、他のコンポーネントの状態にも影響を与える可能性があります。例: 別のコンポーネントによって処理されるグリッド データを取得するためのクエリ パラメータ (searchText、sortOrder など) の設定。
私の考え:
最初のポイントについては、状態の依存スライスを提供するための再選択を検討しています。
2点目として、レイジー登録にcombineReducersとreplaceReducerのどちらを使うべきか、いまだに混乱しています。状態の複数の部分にアクセスしたい場合、combineReducersは合わないと思います。
3点目については、以下のアプローチを考えています。
を。状態の複数の部分を更新する必要がある場合は、getState()を介して状態全体を渡します。このアプローチでは、Redux の不適切な使用を感じますが。
b. コンポーネントAは、状態の一部を更新する独自のアクションを起動し、次に別のコンポーネントBに対して別のアクションを起動して、状態のスライスを更新します。このアプローチも、Redux の全体的なアイデアを壊しているように感じます。副作用の概念はここで使用できますが、使用方法はわかりません。おそらくredux-saga、redux-thunkなどです。
注: どちらのアプローチを使用しても、コンポーネントが他のコンポーネントを認識することにはなりません{ actionsToFire: ['UPDATE_B'] }
。
アプリケーションのページ間を行き来する際に状態管理が必要ですが、ホット リロード、アクション リプレイ、またはサーバー側からのアプリケーション状態のプリフェッチは必要ありません。
コンポーネントは、不要になったときに状態を破棄する責任もあります。そして、状態は正規化された構造になります。
要件が奇妙に見えたり、あまり見られないように思われることはわかっていますが、そのままにしておきます。
私がすでに知っていることはほとんどありません:
Dan の古典的な記事のように Redux を使用する必要はありませんが、この場合は必要だと思います。
私はスマート コンポーネントとダム コンポーネントについて知っています。ほとんどのコンポーネントはスマートに見える (つまり、アプリケーションの状態を認識している) かもしれませんが、それを維持したいのですが、間違っている可能性があります。
グリッド コンポーネントの図:
java - Spring コンテキストの初期化エラーを制御する方法
Spring Bean があるとします。
の実装はPluginInterface
、コア システムとの実行時依存関係があり、外部から提供されます。場合によっては、それらのいくつかが間違っている可能性があります (たとえば、依存関係が失われているなど)。Spring コンテキストの初期化中にこのようなエラーが発生した場合、アプリケーション全体が起動しません (適切な動作に壊れたプラグインは必要ありません)。
いずれかの実装でエラーが発生した場合、PluginInterface
それをスキップして初期化を続行するように、Spring コンテキストの読み込みを制御することは可能ですか?
更新: 詳細説明: Bean を条件付きで追加する必要はありません。エラーのある Bean をスキップしたいのですが、コンテキストの初期化中に問題が発生します。これはプラグインです - 実行時に提供されます。
さらに詳しい説明: プラグインが導入した PluginInterface の実装の 1 つが初期化できない場合でも、アプリケーションを開始したいと考えています。