[解決済み] なぜ、Jigsaw / JPMSなのか?
質問
Java のパッケージ管理システムは、私にとって常にシンプルで効果的に見えました。それは JDK 自身によって多用されています。私たちは、名前空間とモジュールの概念を模倣するためにそれを使用してきました。
とは何ですか? プロジェクト・ジグソー (別名 Javaプラットフォームモジュールシステム ) を埋めようとしているのでしょうか?
公式サイトより。
このプロジェクトの目標は、Java SE プラットフォームのための標準モジュールシステムを設計し、実装することである。 システムを設計し実装すること、そしてそのシステムをJava SEプラットフォー プラットフォームそのものとJDKに適用することです。
どのように解決するのですか?
JigsawとOSGiは同じ問題を解決しようとしています。それは、より粗い粒度のモジュールを、その内部をシールドしながら相互作用させる方法です。
Jigsawの場合、粗視化されたモジュールには、Javaのクラス、パッケージ、そしてそれらの依存関係が含まれます。
ここに例があります。SpringとHibernateです。 どちらもサードパーティのJAR CGLIBに依存していますが、そのJARの異なる、互換性のないバージョンを使用しています。 標準のJDKに依存している場合は、どうすればよいでしょうか。 Springが望んでいるバージョンを含めるとHibernateが壊れ、逆もまた然りです。
しかし、Jigsawのような上位のモデルがあれば、異なるバージョンのJARを異なるモジュールで簡単に管理することができます。 より上位のパッケージとして考えてください。
もしあなたが SpringをGitHubのソースから をビルドしてみると、それもわかると思います。 彼らはフレームワークを作り直し、コア、パーシステンスなど、いくつかのモジュールから構成されるようにしました。 アプリケーションに必要な最小限のモジュールの依存関係を選び、残りを無視することができます。 以前は1つのSpring JARで、その中にすべての.classファイルがありました。
更新しました。5 年後 - Jigsaw には、まだいくつかの の問題 を解決する必要があります。
関連
-
メモ帳でJavaプログラムをコンパイルして実行すると、Could not find or load main class ...というエラーが表示される。解決方法
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
Java Notes 005_この行に複数のマーカーがある - キーを変数に解決できない - シンタックスエラー、ins
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] B "の印刷が "#"の印刷より劇的に遅いのはなぜですか?
-
[解決済み] リフレクションとは何か、なぜ有用なのか?
-
[解決済み] ランダムな文字列を使用するこのコードは、なぜ "hello world" と表示されるのですか?
-
[解決済み】なぜJavaの+=, -=, *=, /=複合代入演算子はキャスティングを必要としないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
mvn' は、内部または外部のコマンド、操作可能なプログラムまたはバッチファイルとして認識されません。
-
アクセス制限です。タイプ 'Application' は API ではない(必要なライブラリに制限がある)。
-
ApplicationContextの起動エラーです。条件レポートを表示するには、アプリケーションを'de'で再実行します。
-
java マイクロソフト払い戻し予期せぬサーバーからのファイルの終了
-
シェルコマンドやスクリプトのJavaコール
-
アノテーション「@Retention」の役割
-
java send https request prompt java.security.cert.について。
-
Web Project JavaでPropertiesファイルを読み込むと、「指定されたファイルがシステムで見つかりません」というソリューションが表示されます。
-
Java Runtime Environmentを継続するためのメモリが不足しています。
-
Java の double データ型における 0.0 と -0.0 の問題