第7-8-9章课程源码参考
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

63 lines
2.1 KiB

package com.fr.plugin;
import com.fr.decision.plugin.db.AbstractDecisionDBAccessProvider;
import com.fr.plugin.dao.UserIpRelationDao;
import com.fr.plugin.dao.UserTokenRelationDao;
import com.fr.plugin.entity.UserIpEntity;
import com.fr.plugin.entity.UserTokenEntity;
import com.fr.plugin.transform.ExecuteFunctionRecord;
import com.fr.plugin.transform.FunctionRecorder;
import com.fr.stable.db.accessor.DBAccessor;
import com.fr.stable.db.dao.BaseDAO;
import com.fr.stable.db.dao.DAOProvider;
//第一步类 继承AbstractDecisionDBAccessProvider
@FunctionRecorder
public class IPTokenPluginDecisionDBAccessProvider extends AbstractDecisionDBAccessProvider {
//第二步 注册数据库访问类
@Override
@ExecuteFunctionRecord
public DAOProvider[] registerDAO() {
return new DAOProvider[]{
//注意这里是匿名类
new DAOProvider() {
@Override
public Class getEntityClass() {
return UserIpEntity.class;
}
@Override
public Class<? extends BaseDAO> getDAOClass() {
return UserIpRelationDao.class;
}
},
new DAOProvider() {
@Override
public Class getEntityClass() {
return UserTokenEntity.class;
}
@Override
public Class<? extends BaseDAO> getDAOClass() {
return UserTokenRelationDao.class;
}
}
};
}
//第三步新建一个DBAccessor 静态变量
private static DBAccessor dbAccessor = null;
//第四步写一个公开的静态方法去获取DBAccessor
public static DBAccessor getDbAccessor() {
return dbAccessor;
}
//第五步 重写数据库访问器注入函数(当数据库访问器准备好之后由fr注入到这里)
@Override
public void onDBAvailable(DBAccessor dbAccessor) {
IPTokenPluginDecisionDBAccessProvider.dbAccessor = dbAccessor;
}
}