생성자에서 Bean 자동 연결: Null 참조 이해
Spring 관리 POJO로 작업할 때 @Autowired를 사용하여 종속성을 주입하는 것이 일반적입니다. 주석. 그러나 일부 개발자는 생성자에서 액세스할 때 autowired Bean이 null인 당황스러운 문제에 직면합니다. 이 글의 목적은 이 동작을 명확히 하고 해결책을 제공하는 것입니다.
제공된 답변에서 언급했듯이 자동 연결은 일반적으로 객체 생성 후에 발생합니다. 이는 생성자 내에서 autowired bean에 대한 참조가 null일 가능성이 높다는 것을 의미합니다. 이 문제를 해결하려면 초기화 코드를 생성자에서 @PostConstruct로 주석이 달린 별도의 메서드로 이동하는 것이 좋습니다.
다음 수정된 코드 조각은 이 접근 방식을 보여줍니다.
@Component public class DocumentManager implements IDocumentManager { @Autowired private IApplicationProperties applicationProperties; // Move initialization code to a PostConstruct method @PostConstruct public void init() { startOOServer(); } private void startOOServer() { if (applicationProperties != null) { // Rest of the initialization code here } } // ... Rest of the class remains the same }
주석을 달아서 @PostConstruct를 사용하여 init 메소드를 사용하면 Spring은 빈이 생성된 후 완전히 초기화되기 전에 이를 자동으로 호출합니다. 이렇게 하면 초기화 로직 내에서 applicationProperties Bean을 사용할 수 있습니다.
위 내용은 생성자에서 내 Autowired Bean이 Null인 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!