下面是我的服务层代码,但由于某种原因,我的@Repository
LoginDataAccess
为空。
@Service
public class LoginService implements BeanFactoryAware {
@Autowired
private LoginDataAccess loginDataAccess;
public void addUserLoginDetails(LoginData loginData) {
LoginDetails loginDetails = new LoginDetails();
loginDetails.setUsername(loginData.getUsername());
loginDetails.setPassword(loginData.getPassword());
if(loginDataAccess == null) {
System.out.println("loginDAtaAccess is null"); // this prints on console
}
loginDataAccess.insertLoginDetails(loginDetails); // throws NullPointerException
}
@Override
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
System.out.println("setting beanfactory");
System.out.println(beanFactory.containsBean("loginDataAccess")); // this prints true
}
}
答案 0 :(得分:0)
我的猜测是你使用java“new”关键字在某处实例化了你的LoginService。如果你这样做,那么Spring无法知道它的存在,因此无法自动装配任何东西。要验证这个猜测,我需要查看您使用此LoginService的位置。
也许this question可以帮到你。