내 모델에 UserRepository
이라는 저장소가 있습니다. 또한 나는 기본적으로 저장소에 사용자를 추가하고 컨트롤러가 액세스하는 UserFacade
을 가지고 있습니다. Repo는 Facade의 @Autowired
입니다. 새 사용자를 추가하려면 저장소에 nullPointerException이 발생합니다. 저장소가 UserRepository.java
포함 된 폴더가 있는데도 spring-servlet.xml
스프링 MVC - Autowired Repository 정적 컨텍스트에서 NullPointerException
필요한
<jpa:repositories base-package="project.user.repositories" />
가 포함되어 있습니다.
@Repository
public interface UserRepository extends CrudRepository<User, Long> {
User findByUsername(String username);
}
Facade.java
이 객체가 포함 저장소입니다 : 그것은 CrudRepository 확장
public class UserFacade {
@Autowired
private static UserRepository userRepo;
private static Logger logger = LoggerFactory.getLogger(UserFacade.class);
public UserFacade(){} //Thought it might work if I add a constructor and call it?
public static User findByUsername(String username) {
logger.debug(username+userRepo); // prints SomeStringnull
return userRepo.findByUsername(username); //NullPointerException
}
}
그리고에서 내 controller
나는 방법처럼이 :
@RequestMapping(value = CONTEXT)
public String test(){
User user = UserFacade.findByUsername("get");
//obviously user will be null if there is no such user
return "success";
}
수입은 문제가되지 않습니다 것입니다 Android Studio를 사용하고 있습니다. 내가 놓친 게 무엇입니까?
참고 : 관련 질문 (예 : this one)에 대한 많은 좋은 답변이 있지만 각기 고유 한 상황을 가지고 있으며 도움이되지 않았습니다.
[내 Spring @Autowired 필드가 null 인 이유는 무엇입니까?] (http://stackoverflow.com/questions/19896870/why-is-my-spring-autowired-field-null) –
@SotiriosDelimanolis 그게 내가 무엇입니까? 나는 그것을 읽을 때까지 생각했다. (그것이 내 질문에 링크 된 이유이다). – Patrick
오른쪽. 정확한 복제본은 아니지만 솔루션을 제공합니다. –