2009-08-26 16 views
9

Tôi đang quyết định về quy ước đặt tên cho tệp ngữ cảnh ứng dụng Spring của mình. Tôi đã xem qua số blog này và một số hướng dẫn đề xuất applicationContext-<name>.xml là cách để thực hiện. Tôi thường không tìm thấy trường hợp trộn lạc đà với dấu gạch ngang/dấu gạch dưới. Một số quy ước đặt tên khác mà bạn đã thấy là gì?Quy ước đặt tên cho ngữ cảnh ứng dụng Spring XML

Chỉnh sửa: Tôi cũng đang nghĩ đến việc lồng các tệp ngữ cảnh bên trong gói có liên quan đến chúng. Ví dụ, các lớp/giao diện của tôi liên quan đến thứ tự sẽ đi vào tệp ngữ cảnh com/mycompany/order/spring-context.xml. Tôi sẽ có một mức cao nhất applicationContext.xml để kéo mọi thứ lại với nhau. Gợi ý?

+6

Hãy cẩn thận về việc tạo các tệp ngữ cảnh ứng dụng rất chi tiết (ví dụ: mỗi gói). Có định nghĩa bean trải rộng trên nhiều tệp khác nhau có thể trở thành vấn đề bảo trì; thật khó để nhìn thấy "bức tranh lớn". Và có thể có những lúc bạn muốn thay thế cho các loại đậu tương tự để thử nghiệm và không có gì. Tôi nghĩ rằng một tập tin cho mỗi hệ thống phụ hoặc lớp của ứng dụng có ý nghĩa hơn. Bạn luôn có thể tách chúng ra tốt hơn khi cần. –

Trả lời

8

Nếu có một quy ước, tôi muốn nó là:

  1. file được lưu trữ trong các gói (không có trong gói mặc định) để phòng ngừa xung đột đặt tên tiềm năng và cũng có nghĩa là tôi không cần phải bao gồm các ứng dụng trong đó, nó được định nghĩa bởi gói.
  2. tập tin có tên trường hợp tất cả thấp hơn với một '-' để tách tên

tôi có xu hướng tiền tố file config mùa xuân của tôi với "mùa xuân" làm cho nó rõ ràng hơn những gì họ đang sử dụng để, nhưng điều này không nhất thiết phải bắt buộc.

Nhưng hãy để tôi nói điều này sẽ hoạt động theo cách mà tôi đã xử lý với các tệp mùa xuân của mình, có thể không hoạt động cho tất cả các ngữ cảnh.

Ứng dụng IMHOContext- < tên > .xml là một chút dài (dài) và tôi thích tất cả chữ thường vì nó phân biệt chúng với nguồn java của tôi và (tôi nghĩ) giúp chúng dễ đọc hơn.

4

Đối với một dự án MVC Web, tôi có xu hướng phá vỡ các tập tin bối cảnh khác nhau dọc theo các đường trách nhiệm:

  • appname-dao.xml
  • appname-servlet.xml
  • appname-services.xml
  • appname-security.xml
1

Hoặc trường hợp lạc đà hoặc '-' tách ra sẽ làm việc vây e, miễn là bạn nhất quán. Tôi biết trong trường hợp của chúng tôi mặc dù chúng tôi không đặt các tệp ngữ cảnh trong cùng thư mục với mã, trừ khi chính mã đó là Spring nhận thức được, trong trường hợp của chúng tôi, nó không phải là.

Chúng tôi có hai trường hợp cho điều này, nơi chúng tôi sử dụng maven 2, tệp ngữ cảnh đi vào thư mục tài nguyên/mùa xuân, trong đó tài nguyên là anh chị em của thư mục nguồn java. Trong trường hợp maven 1 được sử dụng, chúng ta chỉ cần tạo một gói phần mềm gốc và đặt bối cảnh ở đó. Cả hai trường hợp này đều giả sử mã java 'thông thường'. Trong trường hợp của Wars, các gói EJB và OSGi, các tệp thường nằm trong thư mục meta-inf.

Ngoài ra, chúng tôi không sử dụng bối cảnh ứng dụng cấp cao nhất để 'kéo' mọi thứ lại với nhau. Chúng ta chỉ cần tạo một ngữ cảnh với nhiều tệp ngữ cảnh. Chúng tôi tìm thấy điều này đơn giản hơn nhiều để thử nghiệm theo những cách khác nhau, kiểm tra đơn vị với các đối tượng giả, kiểm tra tích hợp không có máy chủ và thử nghiệm tích hợp đầy đủ được triển khai tới máy chủ. Trong tất cả các kịch bản này, chỉ cần cấu hình lại cách bối cảnh được tạo ra thay vì có ngữ cảnh 'chủ' cho mỗi kịch bản.

2

Tôi rất ủng hộ quy ước applicationContext-<name>.xml.

Nói chung <name> đề cập đến tên mô-đun Maven trong tất cả các dự án của chúng tôi. Vì vậy, mỗi mô-đun yêu cầu cấu hình Spring có tệp applicationContext-<name>.xml riêng. "Mô-đun thực thi" tức là một mô-đun đại diện cho loại điểm nhập vào ứng dụng (WAR, EAR, v.v.) có một applicationContext.xml duy nhất chỉ nhập tất cả các tệp applicationContext-<name>.xml.

Chúng tôi sử dụng quy ước này toàn công ty trong tất cả các dự án Maven/Spring của chúng tôi và được chứng minh là cực kỳ đơn giản, rõ ràng và hiệu quả.

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