Nhưng nếu tôi thêm (...) sau đó tôi không có hiệu quả có một máy chủ ứng dụng Java EE? Và sau đó không phải là đậu EJB của tôi? Hay có một số đặc tính xác định khác?
Không, bạn không có máy chủ ứng dụng Java EE, máy chủ ứng dụng Java EE chính thức hơn Tomcat + Spring + Trình quản lý giao dịch độc lập. Và ngay cả khi bạn thêm một nhà cung cấp JMS và một thùng chứa EJB, bạn vẫn sẽ không có một máy chủ Java EE. Keo giữa tất cả các bộ phận là IMO quan trọng và là một phần của giá trị gia tăng của một thùng chứa Java EE.
Về EJB, đặc tả EJB nhiều hơn JPA và các đặc tính cũng là Đậu phiên và Đậu điều khiển (thực ra, tôi không thực sự coi JPA Entities là EJB ngay cả khi JPA là một phần của đặc tả EJB 3.0 trong Java EE 5 vì lý do lịch sử - điều này không còn đúng trong Java EE 6, JPA 2.0 và EJB 3.1 là các đặc điểm riêng biệt). Tôi cũng nên đề cập rằng một bean Spring được chú thích với @Transactional
không tương đương với Session Bean. Một thùng chứa Java EE có thể làm nhiều việc hơn với Session Beans (xem bên dưới). Bạn có thể không cần chúng mặc dù nhưng vẫn còn, họ không hoàn toàn tương đương.
Điều cuối cùng, các thùng chứa Java EE thực hiện một tiêu chuẩn, vùng chứa Spring không, nó là độc quyền.
Máy chủ ứng dụng tương thích Java EE cung cấp cho bạn những gì bạn không thể dễ dàng/dễ dàng nhận được từ Tomcat với một số hệ thống con của bên thứ 3?
Như tôi đã nói, tôi nghĩ rằng "keo" là một phần của giá trị gia tăng và đóng góp cao vào tính bền vững của toàn bộ. Sau đó, answer của ewernli nhấn mạnh rất rõ những gì khó đạt được.Tôi chỉ muốn thêm:
- Clustering và Fail-over (để đạt được lỗi khoan nhượng)
- cơ sở Quản trị
Vâng, một máy chủ Java EE tốt sẽ làm những việc khá gọn gàng để cải thiện khả năng chịu lỗi (nhóm các nhóm kết nối, cây JNDI, các đích JMS, thử lại tự động với các hạt idempotent, các máy khách EJB thông minh, phục hồi giao dịch, di chuyển dịch vụ, vv). Đối với các ứng dụng "nhiệm vụ quan trọng" - đại đa số là không - điều này là quan trọng. Và trong những trường hợp như vậy, các thư viện ở trên cùng của API Servlet là IMO không phải là một sự thay thế.
Như một lưu ý phụ, Apache Tomcat có thể được sử dụng như một phần của máy chủ JavaEE đầy đủ; cụ thể hơn là JBoss hoặc Apache Geronimo. – Powerlord
Và gần đây nhất, Apache TomEE –