5

Cách tốt nhất để quản lý tập hợp thuộc tính để áp dụng cho EJB là gì và dễ dàng thay đổi chúng giữa các máy/môi trường (ví dụ: DEV, TEST, PROD)? Ví dụ, có cách để cấu hình các thuộc tính EJB của bạn trên Máy chủ ứng dụng (đảm bảo bạn có thể thay đổi chúng theo máy/môi trường).Ứng dụng J2EE/Cấu hình Bean Các phương pháp hay nhất?

Cụ thể:

1) Tôi có Singleton EJB cần một số thuộc tính nhất định (môi trường) cụ thể. Có (các) chú thích được sử dụng để thông báo cho EJB Container nơi tìm kiếm các thuộc tính đó và sẽ tự động áp dụng chúng cho bean không?

2) Cách tốt nhất để quản lý các bộ thuộc tính khác nhau, ví dụ: dev, test, prod, để ứng dụng J2EE di động giữa các máy chủ và bạn có thể quản lý các thuộc tính cụ thể cho từng máy chủ một cách liên tục?

Nếu có bất kỳ liên kết tài liệu nào tốt - hãy cho tôi biết. Tôi đã Googled xung quanh và thấy không có gì trực tiếp đến các điểm trên.

Trả lời

2

Tôi sử dụng lớp trợ giúp đơn "PropertiesHelper" có thành viên Properties và đọc từ tệp cấu hình xml khi lần truy cập thuộc tính đầu tiên. Trình trợ giúp đóng gói toàn bộ các thiết lập cấu hình và ngăn chúng không được đọc từ đĩa nhiều lần.

Vị trí tập tin được quy định tại opts java của tôi và đọc bằng PropertiesHelper sử dụng System.getProperty()

Đối với thuộc tính hệ thống chú thích, tôi không tin rằng Java hỗ trợ này nguyên bản, nhưng nếu bạn quá nghiêng bạn có thể muốn xem xét một số khuôn khổ AOP/Dependency Injection như Google Guice tốt hơn trong việc "cắt ngang" này.

+0

Cảm ơn bạn đã phản hồi. Tôi đã hy vọng cho một cái gì đó ở cấp độ máy chủ ứng dụng, tương tự như cách bạn cấu hình Database Pool và các thuộc tính Connection được sử dụng bởi nó được cắm vào khuôn khổ persistence App Server. Đó là một thiết kế gọn gàng đẹp, bởi vì các cài đặt được gắn với cá thể Máy chủ ứng dụng, thường được gắn với một môi trường cụ thể (ví dụ: DEV, TEST, PROD). –

+0

Tôi không biết bất cứ điều gì khá giống như vậy, mặc dù tôi tưởng tượng nó sẽ được sử dụng rất nhiều. Có vẻ như nó sẽ phải là một sản phẩm máy chủ ứng dụng cụ thể vì không có thông số Java cho nó. Hãy cho tôi biết nếu bạn nghe thấy bất cứ điều gì. – jpredham

Các vấn đề liên quan