上幾篇博客,學習了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。
至此,項目主要的類層次梳理清楚了,如今能夠實現具體方法了。