Tôi có một đậu mùa xuân, chúng ta hãy nói:Có thể unproxy một Spring bean không?
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public class AImpl implements A {
public void setSomeDependency(D dependency) {
// This setter DOES NOT BELONG to interface A
}
}
<bean id="aImpl" class="AImpl"/>
Bây giờ tôi muốn thử nghiệm tích hợp nó, nhưng trước tiên tôi cần phải thử phụ thuộc D
, bởi vì nó quá nhiều thứ. Kể từ khi AImpl
thực hiện một giao diện và chứa một chú thích giao dịch, proxy được tạo ra chỉ tương thích với giao diện A
, vì vậy tôi có thể làm điều này:
@Inject @Named("aImpl")
private A a;
nhưng không thể:
@Inject @Named("aImpl")
private AImpl a;
Kết quả là, Tôi không thể chế nhạo sự phụ thuộc của tôi.
Xin lưu ý rằng việc thêm void setSomeDependency(D dependency)
vào giao diện A
không phải là một tùy chọn vì nó không có ý nghĩa kinh doanh. Nó không sử dụng proxy-target-class="true"
, vì nó phá vỡ toàn bộ rất nhiều hạt khác (thuộc tính này ảnh hưởng đến tất cả các hạt trong ngữ cảnh).
Có cách nào để loại bỏ đậu được tiêm A
, vì vậy tôi có thể truyền số đó đến AImpl
không?
có thể trùng lặp của [Truyền đối tượng Proxy của mùa xuân đến lớp thời gian thực tế] (http://stackoverflow.com/questions/5976247/casting-a-springs-proxy-object-to-the-actual-runtime-class) – skaffman
@skaffman: cảm ơn vì đã chỉ ra, tôi đã thêm câu hỏi đó vào Câu hỏi thường gặp về thẻ mùa xuân –