[英]Annotations vs managed beans declarations in faces-config.xml
我正在研究JSF 2.0並且對基於新注釋的自動布線有一定的疑問(在faces-config.xml中沒有任何代碼的托管bean的聲明)。
就我而言,注釋是偉大而簡單的,但問題可能是需要在一個大系統中用一個bean替換另一個bean,如果使用注釋,將導致需要刪除某些類(或類似的臟黑客) ),雖然它可以很容易地修復faces-cofig.xml。
請分享您對此事的經驗。 什么應該被認為更方便,為什么?
但問題可能是需要在一個大系統中用一個bean替換另一個bean
這根本就不應該做。 JSF托管bean應該特定於JSF視圖,不能被其他層/ API重用。 如果你想在JSF和其他不了解JSF的層/ API之間共享一些數據,那么你應該把它們放在自己的類中,並使它成為JSF托管bean的屬性。
所以,而不是
@ManagedBean
@SessionScoped
public class User {
private Long id;
private String username;
private String password;
// ...
}
你應該寧願擁有
@ManagedBean
@SessionScoped
public class UserManager {
private User user;
// ...
}
和
public class User {
private Long id;
private String username;
private String password;
// ...
}
這樣,您可以在所有圖層之間共享User
,而無需擔心特定於圖層的API。 這也稱為“數據傳輸對象”架構模式。
正如Core JavaServer Faces(第三版)中所述 :
在JSF 2.0之前,必須使用XML配置所有bean。 如今,您可以在注釋和XML配置之間進行選擇。 XML配置相當冗長,但如果要在部署時配置Bean,則它非常有用。
注釋允許快速開發並減少冗余xml編碼。 一般來說,它在很大程度上取決於項目本身。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.