.class文件中缺少@Autowired注释

时间:2014-07-11 09:15:27

标签: java spring build maven-3 spring-annotations

我似乎遇到了java编译器的奇怪行为。 基本上我在java类中有以下代码

@Autowired
SubProcessDao subProcessDao;

@Autowired
ProcessDao processDao;

public void startProcess(BatchDetail batchDetail){
processDao.process(batchDetail.getCode());//// Line1
}

当我们的构建团队将其部署到服务器时, 上面的一段代码 在第1行开始失败,其中processDao调用了进程方法 因为Null指针异常。

我很惊讶看到它,因为它在所有机器上工作得非常好,代码看起来也很好。但是在进一步调查中我发现上面的.class文件在war文件中出现了似乎丢失了@ processDao的自动注释... '的.class'反编译时的文件如下所示:

@Autowired
SubProcessDao subProcessDao;
ProcessDao processDao;

在ProcessDao上看到丢失的@Autowired注释。 在构建团队构建代码的svn存储库中,从未有过ProcessDao中缺少@Autowired注释的实例。 有没有人遇到过这种问题?或者有人可以解释这种行为

这里使用的java版本是1.6.27,使用的构建工具是maven

1 个答案:

答案 0 :(得分:0)

也许在ProcessDao类中,您忘记使用例如@Component

将其声明为Spring bean