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

io.gallery.db.util.DataBaseServiceLoader Maven / Gradle / Ivy

package io.gallery.db.util;

import io.gallery.db.service.IDataBaseGenericService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;

import java.util.Map;
import java.util.Optional;

@Component
public class DataBaseServiceLoader implements ApplicationContextAware {
    private static Map dataBaseGenericCtrs;
    private static Map iDataBaseGenericServices;
    private final Log logger = LogFactory.getLog(getClass());

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        dataBaseGenericCtrs = applicationContext.getBeansOfType(DataBaseGenericCtr.class);
        iDataBaseGenericServices = applicationContext.getBeansOfType(IDataBaseGenericService.class);
        Optional.ofNullable(dataBaseGenericCtrs).ifPresent(ctrs -> logger.debug("DataBaseGenericCtr's subClass: " + ctrs.size()));
        Optional.ofNullable(iDataBaseGenericServices).ifPresent(services -> logger.debug("IDataBaseGenericService's implementation class: " + services.size()));
    }

    /**
     * 获取Ctr子类
     *
     * @return Map
     */
    public static Map getDataBaseGenericCtrs() {
        return dataBaseGenericCtrs;
    }

    /**
     * 获取IDataBaseGenericService实现类
     *
     * @return Map
     */
    public static Map getIDataBaseGenericServices() {
        return iDataBaseGenericServices;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy