我有以下RowMapper(ChallengeRowMapper(实现,我试图在其中注入另一个RowMapper(ClaimsViewRowMapper(:
public class ChallengeRowMapper implements RowMapper<Challenge> {
@Autowired
@Qualifier("claimRowMapper1")
private ClaimsViewRowMapper clMapper;
.
.
@Override
public Challenge mapRow(ResultSet rs, int rowNum) throws SQLException {
LOGGER.debug("clMapper is:"+Boolean.toString(clMapper==null));//this prints true
Challenge c=(Challenge)clMapper.mapRow(rs, rowNum); //getting NPE here
}
}
@Autowired由于某种原因不起作用,并且 clMapper 设置为 NULL。 这是另一个注释为 @Component 的 RowMapper。
@Component("claimRowMapper1")
public class ClaimsViewRowMapper implements RowMapper<Claim> {
}
这里要注意的另一点是挑战扩展索赔。两个 rowMappers 都在同一个包中。并且此包位于组件扫描路径下,因为包中的其他 DAO 在 Autowire 下正常工作。 谁能解释一下为什么自动布线在这里不起作用?
您是否用@Component注释了类ChallengeRowMapper?