All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.mars.mvc.load.LoadInters Maven / Gradle / Ivy

There is a newer version: 3.3.3
Show newest version
package com.mars.mvc.load;

import com.mars.core.annotation.MarsInterceptor;
import com.mars.core.constant.MarsConstant;
import com.mars.core.constant.MarsSpace;
import com.mars.core.load.LoadHelper;
import com.mars.core.load.WriteFields;
import com.mars.core.model.MarsBeanClassModel;
import com.mars.mvc.model.MarsInterModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.ArrayList;
import java.util.List;

/**
 * 加载拦截器
 */
public class LoadInters {

    private static Logger log = LoggerFactory.getLogger(LoadInters.class);

    /**
     * 获取全局存储空间
     */
    private static MarsSpace constants = MarsSpace.getEasySpace();

    /**
     * 创建所有拦截器对象
     */
    public static void loadIntersList() {
        try {
            List list = new ArrayList<>();

            List interceptors = LoadHelper.getInterceptorList();

            for (MarsBeanClassModel marsBeanClassModel : interceptors) {

                MarsInterceptor marsInterceptor = (MarsInterceptor) marsBeanClassModel.getAnnotation();
                String pattern = marsInterceptor.pattern();
                Class cls = marsBeanClassModel.getClassName();

                MarsInterModel marsInterModel = new MarsInterModel();
                marsInterModel.setCls(cls);
                marsInterModel.setObj(cls.getDeclaredConstructor().newInstance());
                marsInterModel.setPattern(pattern);

                /* 给拦截器注入属性 */
                WriteFields.writeFields(cls, marsInterModel.getObj(), LoadHelper.getBeanObjectMap());

                list.add(marsInterModel);
            }
            constants.setAttr(MarsConstant.INTERCEPTOR_OBJECTS, list);

        } catch (Exception e) {
            log.error("读取拦截器报错", e);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy