1

@Autowire がサービスを自動配線しない理由を理解しようとしています。適切なパッケージがスキャンされていることを確認したいと思います。

アプリケーションにlog4jを実装し、構成を使用しました:

log4j.rootCategory=DEBUG, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %t %c{2}:%L - %m%n

log4j.category.org.springframework=DEBUG

いくつかの線が見えます...

INFO: Building JPA container EntityManagerFactory for persistence unit 'unit'
12:45:19,627 DEBUG main packaging.AbstractJarVisitor:172 - Filtering: com.production.api.dao.Config
12:45:19,628 DEBUG main packaging.AbstractJarVisitor:172 - Filtering: com.production.api.dao.GenericDao
12:45:19,642 DEBUG main packaging.AbstractJarVisitor:172 - Filtering: com.production.api.dao.JobAssetDao
12:45:19,643 DEBUG main packaging.AbstractJarVisitor:172 - Filtering: com.production.api.dao.JobDao
12:45:19,644 DEBUG main packaging.AbstractJarVisitor:172 - Filtering: com.production.api.dao.JobSetDao

これらの行は、それらのパッケージがスキャンされていることを示していますか? Filtering私には、スキャンされているのではなく、フィルター処理されているように聞こえます。

更新:ここに投稿された別の質問があります:自動配線の問題を解決する際に、サービスの xml なしの自動配線を修正する方法。しかし、私はこの質問を春の伐採に集中させたいと思っていました.

4

3 に答える 3

1

そのロギングは、Spring ではなく Hibernate のように見えます。あなたの変換パターンは役に立ちません。{2}afterをドロップして%c、ロガーの完全なパッケージ名を表示することをお勧めします。

于 2013-02-21T18:15:01.327 に答える
0

私はSpring開発にSpringStoolスイートを使い始めました。クラスがアノテーションを使用してBeanとして定義されている場合、ProjectExplorerのファイル名に矢印と記号「S」が表示されるのが特徴です。

2番目のアプローチは、その特定のクラス/メソッドのみのアノテーションを削除し、context.xmlクラスで定義することです。おそらくパッケージ名が間違っています。

于 2013-02-21T18:21:36.033 に答える
0

誰もこれに答えることができなかったことに私はがっかりしました。どうやら、以下の行は、どのクラスが Bean としてロードされているかを示しています...

Feb 28, 2013 1:16:11 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@3ff33ecb: defining beans ....
于 2013-02-28T18:19:03.583 に答える