在弹簧mvc控制器上注入单例

时间:2015-06-02 12:40:25

标签: java spring spring-mvc dependency-injection

我有一个Singleton课程:

@Singleton
public class CacheManager {
    ...
}

在我的控制器中,我想注入这个Singleton:

@Controller
@RequestMapping("/myRequest.do")
public class ListeSinistresController extends AFoaGanController {

    @Autowired
    private CacheManager cacheManager;

    ...
}

部署时出现以下错误:

<2 juin 2015 14 h 31 CEST> <Warning> <HTTP> <BEA-101162> <User defined listener org.springframework.web.context.ContextLoaderListener failed:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'listeSinistresController': Injection of autowired dependencies failed;
nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.blabla.cache.CacheManager 
com.blabla.web.controller.personne.ListeSinistresController.cacheManager; nested exception is
org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.blabla.cache.CacheManager] found for dependency:
expected at least 1 bean which qualifies as autowire candidate for this dependency. 

我尝试用@Inject - @Authowired - @EJB注入我的单身人士,但没有任何效果。

这样做的方法是什么?

1 个答案:

答案 0 :(得分:0)

Singleton的包导入是什么?您可以尝试@Component注释吗? (提示:默认情况下,所有spring bean都是单例,如果没有明确配置为prototype)。

如果以上操作无效,还会显示您的应用程序配置。然后包扫描可能不正确。

你必须使用@Autowired和spring,这是正确的。