首页>代码>基于Jfinal权限工作流管理系统>/epoch-erp/src/main/java/com/epoch/platform/base/component/annotation/AutoBindModels.java
                
                package com.epoch.platform.base.component.annotation;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.epoch.platform.base.component.constant.DBConst;
import com.epoch.platform.base.component.util.Config;
import com.jfinal.core.Controller;
import com.jfinal.kit.PropKit;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.activerecord.Model;
public class AutoBindModels {
	
	private final Logger logger = LoggerFactory.getLogger(AutoBindModels.class);
	
	private String configName = "main";
	private ActiveRecordPlugin arp;
	
	private List<Class<? extends Controller>> excludeClasses = new ArrayList<Class<? extends Controller>>();
	private List<String> includeJars = new ArrayList<String>();
	public AutoBindModels(ActiveRecordPlugin arp) {
		this.arp = arp;
		config();
	}
	public AutoBindModels(String configName, ActiveRecordPlugin arp) {
		this.configName = configName;
		this.arp = arp;
		config();
	}
	public AutoBindModels addJar(String jarName) {
		if (StrKit.notBlank(jarName)) {
			includeJars.add(jarName);
		}
		return this;
	}
	public AutoBindModels addJars(String jarNames) {
		if (StrKit.notBlank(jarNames)) {
			addJars(jarNames.split(","));
		}
		return this;
	}
	public AutoBindModels addJars(String[] jarsName) {
		includeJars.addAll(Arrays.asList(jarsName));
		return this;
	}
	
	public AutoBindModels addJars(List<String> jarsName) {
		includeJars.addAll(jarsName);
		return this;
	}
	public AutoBindModels addExcludeClass(Class<? extends Controller> clazz) {
		if (clazz != null) {
			excludeClasses.add(clazz);
		}
		return this;
	}
	public AutoBindModels addExcludeClasses(Class<? extends Controller>[] clazzes) {
		excludeClasses.addAll(Arrays.asList(clazzes));
		return this;
	}
	public AutoBindModels addExcludeClasses(List<Class<? extends Controller>> clazzes) {
		excludeClasses.addAll(clazzes);
		return this;
	}
	
	private void config() {
		List<Class<? extends Model>> controllerClasses = ClassSearcher.findInClasspathAndJars(Model.class, includeJars);
		ModelBind ModelBind = null;
		for (Class model : controllerClasses) {
			if (excludeClasses.contains(model)) {
				continue;
			}
			ModelBind = (ModelBind) model.getAnnotation(ModelBind.class);
			if (ModelBind == null || StrKit.isBlank(ModelBind.table())) {
				continue;
			}
			
			// all default ,so not null
			if (StrKit.isBlank(ModelBind.configName()) || StrKit.isBlank(configName)) {
				logger.error("routes.add is null");
				continue;
			}
			// join many database support
			if (configName.equals(ModelBind.configName())) {
				arp.addMapping(ModelBind.table(), ModelBind.key(), model);
				logger.debug(ModelBind.configName() //
						+ " --> routes.add(" + model + "," + ModelBind.table() + ", " + ModelBind.key() + ")");
			}
		}
	}
	
	public List<Class<? extends Controller>> getExcludeClasses() {
		return excludeClasses;
	}
	public void setExcludeClasses(List<Class<? extends Controller>> excludeClasses) {
		this.excludeClasses = excludeClasses;
	}
	public List<String> getIncludeJars() {
		return includeJars;
	}
	public void setIncludeJars(List<String> includeJars) {
		this.includeJars = includeJars;
	}
}
最近下载更多
                
                wubz2008     LV5
                2024年4月22日
            
            
        
                pfb123456     LV8
                2022年11月14日
            
            
        
                xindong     LV12
                2022年6月24日
            
            
        
                bluesky2016     LV15
                2022年6月10日
            
            
        
                xqyedu     LV3
                2022年6月10日
            
            
        
                wanglinddad     LV55
                2022年5月29日
            
            
        
                liangc09     LV2
                2022年4月28日
            
            
        
                liuzejuncn     LV6
                2022年3月27日
            
            
        
                刘亦菲9527     LV15
                2022年2月14日
            
            
        
                yangctz     LV25
                2022年1月11日
            
            
        
最近浏览更多
                
                微信网友_6956978011000832     LV2
                6月30日
            
            
        
                sunqing971     LV2
                1月18日
            
            
        
                CrystalQ     LV8
                2024年8月15日
            
            
        
                myfz0662     LV10
                2024年5月8日
            
            
        
                cityhunter     LV5
                2024年4月22日
            
            
        
                wubz2008     LV5
                2024年4月22日
            
            
        
                微信网友_6906962132258816     LV7
                2024年4月21日
            
            
        
                490154865    
                2024年3月4日
            
            
                    暂无贡献等级
            
        
                1049066887     LV13
                2024年3月3日
            
            
        
                dmy2008     LV6
                2023年12月27日
            
            
        
                
    
                