Tôi có một tròn tham khảo tại một trong những dự án của tôi tại nơi làm việc sử dụng lò xo, mà tôi không thể sửa chữa, và không thành công với các lỗi sau khi khởi động:mùa xuân tròn tham khảo ví dụ
'org.springframework.security.authenticationManager': Requested bean is currently in creation: Is there an unresolvable circular reference?
Tôi cố gắng để tái tạo cùng một vấn đề ở mức độ nhỏ hơn trong một dự án mẫu (không có tất cả các chi tiết về dự án công việc của tôi). Tuy nhiên tôi đã không thể đưa ra một kịch bản chính đáng mà mùa xuân không có lỗi. Dưới đây là những gì tôi có:
public class ClassA {
@Autowired
ClassB classB;
}
public class ClassB {
@Autowired
ClassC classC;
}
@Component
public class ClassC {
@Autowired
ClassA classA;
}
@Configuration
public class Config {
@Bean
public ClassA classA() {
return new ClassA();
}
@Bean
public ClassB classB() {
return new ClassB();
}
}
Tôi có một kịch bản tương tự trong dự án của tôi, mà thất bại, và tôi đã mong đợi mùa xuân để phàn nàn trong dự án mẫu của tôi là tốt. Nhưng nó hoạt động tốt! Ai đó có thể cho tôi một ví dụ đơn giản về cách phá vỡ mùa xuân với lỗi tham chiếu vòng tròn?
Chỉnh sửa: Tôi đã khắc phục sự cố bằng cách sử dụng javax.inject.Provider. Sự khác biệt duy nhất trong 2 dự án là các chú thích được sử dụng là javax.inject.Inject và javax.annotation.ManagedBean thay cho @Autowired và @Component.
Chỉ cần thêm vào điều này, chúng tôi nhấn một vấn đề tương tự (với tiêm SpringTemplateEngine). Giải pháp "setter injection" không có tác dụng gì, nhưng chú thích '@ Lazy' đã làm được điều này. Nó cảm thấy như một băng cứu trợ trên một vết thương đạn, nhưng bây giờ tôi sẽ giành chiến thắng và bỏ đi. Cảm ơn Mister Spaeth. – demaniak