Spring Boot의 생성자 자동 배선
Spring Boot로 작업할 때 자동 배선을 사용하여 Bean 생성자에 종속성을 주입하면 때때로 null 값이 발생할 수 있습니다. 이는 Bean 생성 후에 자동 연결이 발생하기 때문입니다.
주어진 코드 조각에서 @Autowired applicationProperties Bean은 DocumentManager 생성자에서 참조될 때 null이지만 변환 메서드에서 참조될 때는 null이 아닙니다. 문제는 생성자가 실행된 후 자동 연결이 발생한다는 것입니다.
해결책: 생성 후 초기화
이 문제를 해결하려면 @를 사용하세요. 종속성을 초기화해야 하는 Bean 클래스의 메소드에 대한 PostConstruct 주석. 이 메소드는 Bean 생성 후에 호출되며 필요한 초기화 로직을 수행하는 데 사용될 수 있습니다.
다음은 @PostConstruct 주석을 사용하도록 DocumentManager 클래스를 수정하는 방법입니다.
@Component public class DocumentManager implements IDocumentManager { private Log logger = LogFactory.getLog(this.getClass()); private OfficeManager officeManager = null; private ConverterService converterService = null; @Autowired private IApplicationProperties applicationProperties; // Remove initialization code from constructor public DocumentManager() { } @PostConstruct public void initialize() { startOOServer(); } ...
여기서 수정된 코드에서는 초기화 로직이 @PostConstruct라는 주석이 붙은 초기화 메서드로 이동되었습니다. 이렇게 하면 Bean 생성 후 메소드가 호출될 때 applicationProperties Bean을 사용할 수 있습니다.
위 내용은 Spring Boot 생성자에서 Autowiring이 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!