2016-08-25 6 views
0

私は、インターフェイス "Shape"とクラス "Rectangle"を実装したパッケージ "A"を持っています。インターフェイスとクラスの両方に既定のアクセス権があります。今私はクラス "ShapeTester"と別のパッケージ "B"を持っています。このShapeTesterクラスでは、Rectangleクラスをインスタンス化しようとするか、Shape型の変数を宣言しようとしましたが、コンパイルエラーが発生します。 しかし、ShapeTesterクラスでは、Springコンテナを使用してBeanを作成すると、RectangleクラスのBeanが作成されます。アクセス制限をチェックせずに、デフォルトのアクセス権を持つクラスに対してもSpringコンテナがBeanを作成するのはなぜですか?

Beanが作成されているクラスがRectangleのために作成されていても、そのようなRectangleクラスが存在することさえも知りません。

答えて

0

Springはオブジェクトインスタンスを作成するだけです。どのクラスまたはパッケージからスプリングコンテナを始めるかは関係ありません。

Javaの可視性の概念は静的な関係に関連しています。たとえば、パッケージAにクラスAがある場合、すべてのルールはこれに基づいています。クラスAがクラスBによって他のパッケージからインスタンス化されているかどうかは関係ありません。

関連する問題