2011-12-25 82 views
16

Tôi mới làm quen với lập trình JSP và phía máy chủ. Cho đến bây giờ tôi đang làm việc với Servlets và các lớp java. Tôi đang tách biệt ứng dụng của tôi (theo mô hình MVC) với sự trợ giúp của các lớp java. Tôi muốn biết sự khác biệt giữa các hạt java và các lớp java. Và trong kịch bản nào tôi có thể sử dụng một bean java thay vì một lớp java. Bất kỳ lời giải thích hữu ích hoặc liên kết hữu ích nào?sự khác biệt giữa java bean và java class?

Trả lời

27

Một Java đậu chỉ là một lớp mà phù hợp với một số công ước:

  • thuộc tính có thể được truy cập bằng cách thu khí (và setters nếu những tài sản không read-only)
  • không-arg constructor công cộng
  • nối tiếp

Thẻ JSP EL và thẻ được thiết kế xung quanh các quy ước đó. Hầu hết trong số họ không cần tất cả các quy ước này để được tôn trọng. các thuộc tính có sẵn bởi getters là quan trọng nhất trong các quy ước này. Ví dụ: biểu thức

${foo.bar.name} 

hiển thị tên của thanh của bean foo. foo là bean phải nằm trong ngữ cảnh trang, yêu cầu, phiên hoặc ứng dụng. Và biểu thức này sẽ gọi getBar() trên bean này và sau đó getName() trên đối tượng được trả lại bởi getBar().

+0

Thực thi cần thiết có thể tuần tự hóa để được coi là một bean không? – Wronski

+2

@Wronski theo định nghĩa chặt chẽ nhất, có: https://docs.oracle.com/javase/tutorial/javabeans/advanced/persistence.html. Nhưng như tôi đã nói, nhiều khung công tác dựa vào các quy ước JavaBean để được tôn trọng, nhưng điều đó không có nghĩa là chúng phải tôn trọng tất cả chúng. Ví dụ, truy cập một thuộc tính đối tượng bằng cách sử dụng JSP EL sẽ không thất bại nếu đối tượng không phải là serializable. –

2

Đặc tả JavaBeans xác định loại thành phần JavaBeans là "thành phần phần mềm có thể tái sử dụng". Một thành phần là một Java Bean Class Java đơn giản tôn trọng một số quy ước về cách đặt tên, xây dựng và hành vi. Tuân thủ các quy ước này làm cho nó có thể sử dụng, tái sử dụng, thay thế và kết nối Java Beans cho các công cụ phát triển. Các hạt cà phê phải là "Serializable" Để lưu và khôi phục các phiên bản của lớp này.

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