Tôi đang sử dụng Java dựa trên cấu hình để thiết lập bối cảnh ứng dụng Spring của tôi như thế này:Làm thế nào để tải tất cả đậu lười biếng với @ComponentScan trong mùa xuân?
@Configuration
@Lazy
@ComponentScan(basePackageClasses = {MyProject.class, OtherProject.class})
public class MyAppConfig {
...
}
Đậu được xác định một cách rõ ràng trong cấu hình được nạp uể oải, giống như bạn mong đợi. Tuy nhiên, các lớp được quét chú thích với @Named
luôn được tải háo hức. Làm sao tôi có thể giải quyết việc này?
Mọi trợ giúp đều được đánh giá cao.
Lưu ý rằng cho các lớp trong gói MyProject
, tôi có thể làm việc này bằng cách chú thích chúng với @Lazy
là tốt. Nhưng dự án khác không có sự phụ thuộc vào mùa xuân và tôi muốn giữ nó như thế (vì thế @Named
và không phải là @Component
).
Cũng lưu ý rằng điều này không có đường may là vấn đề trong cấu hình dựa trên XML. Ở đó, đặt default-lazy-init="true"
trong các đường nối thẻ <beans>
để làm những gì tôi muốn (mặc dù tôi chưa thử nghiệm).
Vì vậy, hãy thử thêm nhỏ '<đậu mặc định-lười-init = "true" /> 'tệp XML và để phần còn lại cho Cấu hình Java. Nếu không có cách nào để thực hiện điều này với '@ Configuration', đừng ngần ngại [nêu vấn đề] (https://jira.springsource.org/secure/Dashboard.jspa). –
kiểm tra điều này: http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/context/annotation/Lazy.html – Elbek
Có một báo cáo lỗi mở về điều này: https: // jira.spring.io/browse/SPR-10459 –