我正在研究一些 Spring 3 注释驱动的控制器和服务,并且对这怎么可能有疑问?
我的
servlet-context.xml
文件中有要加载的以下项目的路径:<context:component-scan base-package="com.project.controller, com.project.service"/>
在控制器下,我在 init 类中有这个,init 被标记为:
@PostConstruct
public void init() {
ApplicationContext context = new GenericApplicationContext();
bizServices = (BizServices) context.getBean("bizServices");
}
在我的服务中,我有一个用于服务的 bean,标记为:
@Service("bizServices")
public class BizServicesImpl implements BizServices { ... }
我得到的例外是:
SEVERE: Allocate exception for servlet Spring MVC Dispatcher Servlet
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'bizServices' is defined
这告诉我要么我使用了错误的应用程序上下文服务,要么找不到 bean。我可以在没有 Autowire 的情况下在 PostConstruct 中显式定位并加载此 Service 类吗?如果我让我的服务类从工厂加载,我可以指定工厂类是什么,那会是 xml 中的 bean 配置条目吗?
再次感谢...