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

xin.manong.weapon.spring.boot.bean.AliyunBeanDefinitionRegistryPostProcessor Maven / Gradle / Ivy

package xin.manong.weapon.spring.boot.bean;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;
import org.springframework.boot.context.properties.bind.Bindable;
import org.springframework.boot.context.properties.bind.Binder;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.EnvironmentAware;
import org.springframework.core.env.Environment;
import xin.manong.weapon.aliyun.secret.AliyunSecret;

/**
 * 阿里云bean定义注册父类
 * 完成阿里云秘钥绑定
 *
 * @author frankcl
 * @date 2022-08-26 13:09:23
 */
public abstract class AliyunBeanDefinitionRegistryPostProcessor implements BeanDefinitionRegistryPostProcessor,
        EnvironmentAware, ApplicationContextAware {

    private final static Logger logger = LoggerFactory.getLogger(AliyunBeanDefinitionRegistryPostProcessor.class);

    private final static String BINDING_KEY = "weapon.aliyun.secret";

    protected Environment environment;
    protected ApplicationContext applicationContext;

    /**
     * 根据配置绑定阿里云秘钥
     *
     * @return 阿里云秘钥
     */
    protected AliyunSecret bindAliyunSecret() {
        try {
            return Binder.get(environment).bind(BINDING_KEY, Bindable.of(AliyunSecret.class)).get();
        } catch (Exception e) {
            logger.warn("bind aliyun secret failed");
            return null;
        }
    }

    @Override
    public void postProcessBeanFactory(ConfigurableListableBeanFactory configurableListableBeanFactory)
            throws BeansException {
    }

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        this.applicationContext = applicationContext;
    }

    @Override
    public void setEnvironment(Environment environment) {
        this.environment = environment;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy