jfinal的model,service類繼承結構梳理

上幾篇博客,學習了shiro身份驗證和受權,jfinal的model層抽象,service層抽象,大致將shiro整合到jfinal,如今具體要作的是實現shiro中ShiroRealm類裏調用的方法,如:findByUsername(username),findRolesByUserId(userid),findUserPermsByUserId(userid),學習

如今再來梳理下jfinal裏如User,BaseUser,BaseModel三者的關係,三者的繼承關係以下:對象

public class User extends BaseUser<User>繼承

public abstract class BaseUser<M extends BaseUser<M>> extends BaseModel<M> implements IBeanget

public abstract class BaseModel<M extends BaseModel<M>> extends Model<M>博客

接下來依次解讀一下上面的三個model類的繼承:class

(1)首先,類User 繼承了一個持有User 對象的類BaseUser,這樣User就能夠使用BaseUser裏的getter,setter方法,而且這裏的getter,setter方法操做的就是User對象。model

(2)其次,類BaseUser的對象存入繼承了BaseUser的User 類型的對象,BaseUser繼承了一個持有BaseUser對象的類BaseModel,這樣BaseUser就能夠使用BaseModel裏的方法,而且這裏方法操做的就是User 對象。service

(3)最後,BaseModel的對象存入了繼承了BaseModel類型的對象,BaseModel繼承了Model,這樣BaseModel就能夠使用Model裏的方法,而且這裏方法操做的就是User對象。方法

而後再來梳理下UserService,BaseUserService,BaseService三者的關係,三者的繼承關係以下:im

public class UserService extends BaseUserService<User>

public abstract class BaseUserService<M extends BaseUser<M>> extends BaseService<M>

繼續解讀上面的三個service類:

(1)首先, UserService繼承了持有User對象的類BaseUserService,這樣UserService就能夠調用BaseUserService裏的方法操做User。

(2)其次,持有繼承了BaseUser類對象的BaseUserService,繼承了BaseService,這樣UserService就能夠調用BaseUserService裏的方法操做User。

至此,項目主要的類層次梳理清楚了,如今能夠實現具體方法了。

相關文章
相關標籤/搜索