4

私のSpringアプリケーションでは、xmlで次のように定義されたBeanがあります。

<beans:bean id="tokenStore" class="com.myproject.core.security.RemoteTokenStore" />

また、私が作成し、@Service で注釈を付けたこのクラスもあります。

com.myproject.core.service.CacheService

私の RemoteTokenStore.java ファイルで、次のように CacheService を Autowire しようとすると:

@Autowired
private CacheService cacheService;

常にヌルです。これを修正するにはどうすればよいですか?

4

2 に答える 2

3

これをコンテキスト xml ファイルに追加します。

<context:component-scan base-package="com.myproject.core.security" />

これが指定されると、アノテーションが処理され、Spring によってコンポーネントが識別されます。

まだ行っていない場合はspring-context、クラスパスへの依存関係とコンテキスト名前空間をアプリケーション XML に含める必要もあります。

これを読む:http://www.mkyong.com/spring/spring-auto-scanning-components/役立つかもしれません

于 2013-01-18T17:06:24.327 に答える
0

あなたは十分な情報を提供しませんでした。どの春バージョン?どのアプリケーションサーバー?

一般的に、あなたは持っているべきです

<context:component-scan base-package="com.packagebase" /> 

Spring xml conf ファイルで、注釈付きの Bean を使用します。

ただし、常に機能するとは限りません。

spring 2.5.6 + Jboss AS7 に問題がありました。Jboss は、注釈付き Bean が定義されていないことを報告し続けました。(NoSuchBeanDefinition またはそのようなもの)。spring 3.0.0.Relase に切り替えて解決しました。

于 2013-01-18T17:13:49.523 に答える