2012-01-11 21 views
7

Không ai biết Spring JAR là gì (và nơi để tìm nó!) chứa chức năng cho cái gọi là "meta-annotations". Như this show bài viết, những (tốt, sorta) cấu trúc "mới" mát mẻ cho phép mã như thế này:Spring Meta-Annotations

@Service 
@Scope("request") 
@Transactional(rollbackFor=Exception.class) 
@Retention(RetentionPolicy.RUNTIME) 
public @interface MyService { 
} 

@MyService 
public class RewardsService { 
    … 
} 

Về cơ bản, tôi có một ứng dụng Swing rằng không hiện đang sử dụng mùa xuân. Tôi có một sự thay đổi yêu cầu đột ngột sẽ được thực hiện cực kỳ dễ dàng hơn nếu tôi có thể sử dụng các chú thích này.

Vì vậy, tôi chỉ tìm kiếm nhỏ nhất, ít xâm lấn mùa xuân JAR, nơi chức năng này có thể được tìm thấy. Nếu tuyệt đối cần thiết, tôi có thể sử dụng toàn bộ Spring JAR, nhưng nó sẽ là một giải pháp rất nặng. Sẽ rất tuyệt nếu Spring phát hành JAR nhỏ hơn với chức năng phạm vi nhỏ hơn.

Tôi browswing Maven Repo và xem spring-core trong đó có một gói phần mềm được gọi là:

org.springframework.core.annotation

Nhưng khi kiểm tra các tài liệu API nó dường như không là những gì tôi cần ...

Câu hỏi phụ trợ: thậm chí có thể sử dụng các chú giải meta này làm cấu trúc độc lập hoặc tôi để sử dụng chúng cùng với, chẳng hạn, Spring DI hoặc AOP hoặc các phần chính khác của khung công tác Spring?

Cảm ơn trước!

+0

Chú thích hoạt động như thế nào nếu không có mã thực hiện điều gì đó với chú thích? Chú thích chỉ là - một ghi chú, siêu dữ liệu, có thể được sử dụng bởi mã khác. Nó không làm bất cứ điều gì một mình. –

Trả lời

4

Chú thích bạn muốn sẽ có trong lọ mà nó liên quan đến. Ví dụ: chú thích org.springframework.transaction.annotation.Transactional sẽ nằm trong tạo phẩm spring-transactions.

Chú thích meta không thực sự khác với chú thích thông thường ngoài thực tế là bây giờ Spring phát hiện chú thích trên chú thích trong khi chú thích không có trước đây. Cho dù chú thích "làm việc" hay không phụ thuộc vào những gì đang tìm kiếm chúng (trong trường hợp này là một cái gì đó trong bối cảnh mùa xuân).

Để đọc thêm, xem Annotation-based container configuration trong tham chiếu khung Spring.

+0

Cảm ơn Dev - có thể là do muộn và tôi đã thức cả ngày, tôi chỉ gặp một chút rắc rối khi hiểu phản hồi của bạn. Bạn đang nói rằng không có * một nơi * nơi mà "meta-chú thích" được xác định, hoặc là bạn surmising rằng họ đang bắt nguồn từ một nơi nào đó bên trong 'spring-context'? Cảm ơn một lần nữa! – IAmYourFaja

+0

Các chú thích tự được định nghĩa trong bất kỳ lọ nào chúng được định nghĩa. 'Spring-context' chứa khung làm cho chú thích hoạt động. Tôi đã sửa đổi câu trả lời của tôi để cung cấp cho bạn đọc thêm về chủ đề này. – Dev