3

次のメインクラスがあります。

public class Startup implements UncaughtExceptionHandler {

@Autowired
private MessageListener messageListener;

private static Startup startup;

public static void main(String[] args) {
        Startup start = new Startup();
        start.init(args); 
}

public void init(String[] args) {

    context = new ClassPathXmlApplicationContext("applicationContext.xml");
    startup = (Startup) context.getBean( "startup" );
    startup.start(); //here the messageListener is used
}

// ここでは、messageListener が使用されるメソッドを呼び出すメイン クラスに進みます }

@Component
public class ProdMessageListener 
    extends AbstractMessageListener implements MessageListener {...}

public abstract class AbstractMessageListener 
    implements MessageListener {...}

としても

@Component
public interface MessageListener extends QueueAware {...}

@Component
public interface QueueAware {...}

私の Spring コンテキストは、すべてのクラスとインターフェースを見つけるために使用します。ただし、Bean が認識されず、次のようになります。

依存関係の [com.ware.messaging.listener.MessageListener] タイプの適格な Bean が見つかりません。

自動配線が機能しない理由はありますか?

4

2 に答える 2

2

Spring がすべてのコンポーネントをコンテナーにロードできるように、以下のように基本パッケージを Spring コンテキスト構成に追加したことを確認してください。

 <context:component-scan base-package="pakage1.package2"/>
于 2013-04-11T14:29:21.080 に答える
0

何が問題だったか知っていますか?Spring は静的フィールドを自動配線していないようです。これですべてが機能します。

于 2013-04-15T04:57:46.050 に答える