Java 春元';不要注射一颗阳性的豆子

Java 春元';不要注射一颗阳性的豆子,java,spring,spring-mvc,Java,Spring,Spring Mvc,Dao @Repository public interface LoginDao extends JpaRepository<Login, Integer> { Login findByLogin(String login); } 我有上面列出的刀。这个DAOBean被注入到@Service注释类中,而不是@Component注释的验证器类中。嗯,不完全是在服务器启动时,我可以看到setter方法被调用,但是当我尝试在方法中使用这个变量时,该变量显示为null 有人看到我

Dao

@Repository
public interface LoginDao extends JpaRepository<Login, Integer> {
    Login findByLogin(String login);
}
我有上面列出的刀。这个DAOBean被注入到@Service注释类中,而不是@Component注释的验证器类中。嗯,不完全是在服务器启动时,我可以看到setter方法被调用,但是当我尝试在方法中使用这个变量时,该变量显示为null


有人看到我的配置有问题吗?请注意,logindaobean被注入到服务类中,因此上下文配置良好

这是你的问题

webDataBinder.setValidator(new PasswordChangeValidator());
Spring只能管理它创建的bean。在这里,您正在创建实例。相反,将bean注入
@Controller
并使用它

@Inject
private PasswordChangeValidator passwordChangeValidator;
...
webDataBinder.setValidator(passwordChangeValidator);

您试图在哪里使用
密码更改验证程序
?Spring无法注入
null
。您可能正在自己创建实例。在控制器方法中使用
@Valid
注释。我使用控制器内的
@InitBinder
注释绑定验证器。我不是说它是空的,只是说
loginDao
在它不应该是空的时候是空的。用
@InitBinder
向我们展示代码。添加了控制器代码。宾果,就在我眼前,谢谢你的帮助。
webDataBinder.setValidator(new PasswordChangeValidator());
@Inject
private PasswordChangeValidator passwordChangeValidator;
...
webDataBinder.setValidator(passwordChangeValidator);