package com.company.service;
@org.springframework.stereotype.Service
public class UserWorkflow {
private Logger logger = Logger.getLogger(UserWorkflow.class)
@Autowired
public UserMessageViewDAO MessageViewDAO;
}
package com.company.dao;
@org.springframework.stereotype.Repository
public class UserMessageViewDAO extends BaseDao{
public UserMessageViewDAO () {
}
}
在applicationContexe.xml 中<context:component-scan base-package="com.company.dao"/>
<context:component-scan base-package="com.company.service"/>
<context:annotation-config/>
@Autowire
注释无法正常工作。当在服务类中调用方法时,它将MessageViewDAO
的值显示为null
。但是,在部署应用程序时,日志中没有错误。
你能帮我找个问题吗?
答案 0 :(得分:0)
第二个上下文:component-scan会覆盖第一个上下文,这就是不扫描com.company.dao的原因。如果您想使用多个包,请使用以下内容包含它们:
<context:component-scan base-package="com.company.dao, com.company.service" />
或者,简而言之(包扫描是递归的):
<context:component-scan base-package="com.company" />
您可能还想查看: multiple packages in context:component-scan, spring config
编辑2016-09-12:使用@Service和@Repositiory注释。 Annotations @ org..springframework.stereotype。 ......看起来很奇怪。