阅读背景:

动态Component组件代理实现类/类方法invoke实现(暂时记录下)

来源:互联网 
package com.basis.datasource.service.impl;

import com.basis.datasource.UserDataSource;
import com.basis.datasource.service.WisRemoteJobService;
import com.basis.datasource.vo.RemoteJobVO;
import com.core.context.WebContextHolder;
import com.core.utils.scheduler.SchedulerHelper;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Service;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

@Service
public class WisRemoteJobServiceImpl implements WisRemoteJobService {

    protected static final Log logger = LogFactory.getLog(SchedulerHelper.class);

    /**
     * 调用远程方法
     *
     */
    @Override
    public void callJob(RemoteJobVO vo) {
        try {
            String customKey = vo.getCustomKey();
            if (StringUtils.isNotBlank(customKey)) {
                //切换数据源
                UserDataSource.getSingleton().toggleDataSource(customKey);
                Object bean = WebContextHolder.getWebAppContext().getBean(vo.getObjectType());
                Method method = bean.getClass().getMethod(vo.getMethodName());
                method.invoke(bean);
            }
        } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
            logger.error("远程定时任务调度失败:" + e.fillInStackTrace());
        }
    }
}
package com.basis.datasource.service.impl



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: