Tôi muốn khám phá tất cả các triển khai của một giao diện trong thời gian chạy trong một ứng dụng Java và tải các lớp đó một cách động từ các tệp JAR mà người dùng có thể thêm vào một thư mục. Đó là một hệ thống plug-in, về cơ bản.Khuôn mẫu khám phá dịch vụ Java đơn giản
Tôi tìm thấy một số giải pháp cho việc này:
- Sử dụng SPI - đây không phải là rất linh hoạt: Tôi muốn một cái gì đó mà có thể làm việc với chú thích, hoặc chỉ tìm kiếm một giao diện được mở rộng, không cũng phải thêm các tệp văn bản bên ngoài.
- Sử dụng Commons Discovery - trông giống như một kết thúc chết, vì bản phát hành cuối cùng là 0,4 từ năm 2005 trở lại
- Sử dụng Java Simple Plugin Framework. 5 minutes and it works. No XML. - điều này có vẻ rất chưa trưởng thành.
Có giải pháp nào được sử dụng rộng rãi cho việc này không?
Cập nhật: Không cần phải tách mã và OSGi dường như quá phức tạp đối với các nhu cầu đơn giản của tôi ngay bây giờ. Tôi cũng đã thêm "Đơn giản" vào tiêu đề của câu hỏi này để làm rõ ý định của mình.
OSGi có thể giải quyết các vấn đề như thế này và ngoài ra còn cung cấp các cách để giữ mô-đun riêng biệt, vv sẽ rất quan trọng nếu bạn có các trình cắm phụ thuộc vào các thư viện khác. – Jesper