4

在我的 Spring 应用程序中,我在我的 xml 中定义了一个 bean,如下所示:

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

我还创建了这个类,并使用@Service 进行了注释:

com.myproject.core.service.CacheService

在我的 RemoteTokenStore.java 文件中,如果我尝试像这样自动连接 CacheService:

@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" /> 

in your spring xml conf files to use annotated beans.

however, it won't always work.

I had problem with spring 2.5.6 + Jboss AS7. Jboss kept reporting annotated bean not defined. (NoSuchBeanDefinition or something like that). I switched to spring 3.0.0.Relase to resolve it.

于 2013-01-18T17:13:49.523 回答