11

コンポーネントのインターフェースをインターフェースとして公開したいのですが、実装するクラスはパッケージ保護されます(おそらく他のパッケージでも):

package baz.iface

interface Foo {
    void bar();
}  


package baz.whatever

@Component
class SpringyFoo implements baz.iface.Foo {
    public void bar() { frobnicate(); }
}

が にあると仮定するbaz.whateverと、component-scanSpring は a を別の場所に自動配線できbaz.iface.Fooますか?

class FooClient {
    @Autowired
    private baz.iface.Foo;
}
4

3 に答える 3

11

いいえ、コンポーネントはパブリックである必要はありません。唯一の要件は、引数なしのコンストラクターを持っていることです。

于 2013-08-19T12:51:39.830 に答える