Package com.alibaba.asyncload.impl.spring

Source Code of com.alibaba.asyncload.impl.spring.AsyncLoadFactoryBean

package com.alibaba.asyncload.impl.spring;

import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.InitializingBean;

import com.alibaba.asyncload.AsyncLoadConfig;
import com.alibaba.asyncload.AsyncLoadExecutor;
import com.alibaba.asyncload.impl.AsyncLoadEnhanceProxy;
import com.alibaba.asyncload.impl.util.AsyncLoadUtils;

/**
* 基于spring FactoryBean实现的一套AsyncLoad机制,声明式
*
* @author jianghang 2011-1-24 下午07:00:17
*/
public class AsyncLoadFactoryBean implements FactoryBean, InitializingBean {

    private Object            target;
    private Class             targetClass;
    private AsyncLoadExecutor executor;
    private AsyncLoadConfig   config;

    public Object getObject() throws Exception {
        AsyncLoadEnhanceProxy proxy = new AsyncLoadEnhanceProxy(target, config, executor);
        proxy.setTargetClass(targetClass);
        return proxy.getProxy(); // 返回对应的代理对象
    }

    public Class getObjectType() {
        return targetClass;
    }

    public boolean isSingleton() {
        return true; // 因为使用proxy,所以设置为true
    }

    public void afterPropertiesSet() throws Exception {
        // check
        AsyncLoadUtils.notNull(config, "config should not be null!");
        AsyncLoadUtils.notNull(executor, "executor should not be null!");
        AsyncLoadUtils.notNull(target, "target should not be null!");
    }

    // ======================= setter / getter ======================

    public void setExecutor(AsyncLoadExecutor executor) {
        this.executor = executor;
    }

    public void setConfig(AsyncLoadConfig config) {
        this.config = config;
    }

    public void setTarget(Object target) {
        this.target = target;
    }

    public void setTargetClass(Class targetClass) {
        this.targetClass = targetClass;
    }

}
TOP

Related Classes of com.alibaba.asyncload.impl.spring.AsyncLoadFactoryBean

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.