Tôi muốn sử dụng @AutoWired để chèn một bean không được quản lý được định cấu hình với @Component vào một bean được quản lý. Tôi khá chắc chắn rằng tôi có cấu hình đúng, nhưng vì một lý do nào đó mà tôi tiếp tục bị ngoại lệ:Đậu không được quản lý tự động Chú thích với @Component
No unique bean of type [foo.Baz] is defined: Unsatisfied dependency of type [class foo.Baz]: expected at least 1 matching bean
Dựa trên lỗi này, tôi đoán là không thể tìm thấy lớp Baz, nhưng tôi không chắc chắn lý do tại sao. Đó là sự hiểu biết của tôi rằng bối cảnh: yếu tố cấu hình mùa xuân trong cấu hình XML được cho là để cho phép tôi làm điều này. Tôi cũng đảm bảo bao gồm các tệp jar thích hợp (spring-woven.jar và aspectjweaver.jar).
Đây là một ví dụ đơn giản về thiết lập của tôi.
My XML config:
<beans ...>
...
<context:annotation-config/>
<context:spring-configured/>
<context:component-scan base-package="foo"/>
<bean id="bar" class="foo.Bar"/>
...
</beans>
Tôi đã một bean được quản lý:
package foo;
public class Bar {
@Autowired
private Baz baz;
public void setBaz(Baz baz) {
this.baz = baz;
}
...
}
Và một trong đậu không được quản lý:
package foo;
@Component
public class Baz {
...
}
Có cái gì tôi đang thiếu?
EDIT: Nhật ký liệt kê các hạt của nó ngay lập tức và foo.Baz không phải là một trong số đó. Tôi không biết tại sao nó không chọn lớp được chú thích @Component.
Ghi nhật ký nói gì? Có phải nó đề cập rằng nó là tự động phát hiện đậu trong gói foo? Việc ghi nhật ký gỡ lỗi sẽ cho biết các hạt @Component đã được tìm thấy. – skaffman
Ngẫu nhiên, các công cụ được định cấu hình theo khía cạnh/dệt/lò xo không cần thiết cho những gì bạn muốn làm. Đây chỉ là autowiring cơ bản. – skaffman