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

org.zodiac.autoconfigure.sentinel.SentinelConfigAutoConfiguration Maven / Gradle / Ivy

package org.zodiac.autoconfigure.sentinel;

import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.core.env.Environment;
import org.zodiac.autoconfigure.bootstrap.condition.ConditionalOnSpringCloudBootstrapDisabled;
import org.zodiac.autoconfigure.sentinel.condition.ConditionalOnSentinelConfigEnabled;

@SpringBootConfiguration
@ConditionalOnSentinelConfigEnabled
@ConditionalOnSpringCloudBootstrapDisabled
@ConditionalOnClass(value = {com.alibaba.csp.sentinel.Env.class, com.alibaba.csp.sentinel.annotation.aspectj.AbstractSentinelAspectSupport.class, org.zodiac.sentinel.base.model.SentinelRule.class})
public class SentinelConfigAutoConfiguration {

    private SentinelConfigProperties sentinelConfigProperties;
    private org.zodiac.sentinel.base.config.configurer.SentinelConfigurer sentinelConfigurer;

    public SentinelConfigAutoConfiguration(SentinelConfigProperties sentinelConfigProperties,
        org.zodiac.sentinel.base.config.configurer.SentinelConfigurer sentinelConfigurer) {
        super();
        this.sentinelConfigProperties = sentinelConfigProperties;
        this.sentinelConfigurer = sentinelConfigurer;
    }

    @Bean
    @ConditionalOnMissingBean
    protected com.alibaba.csp.sentinel.annotation.aspectj.SentinelResourceAspect sentinelResourceAspect() {
        return sentinelConfigurer.sentinelResourceAspect();
    }

    @Bean
    @ConditionalOnMissingBean
    protected org.zodiac.sentinel.base.datasource.SentinelDataSourceHandler sentinelDataSourceHandler(DefaultListableBeanFactory beanFactory,
        Environment env) {
        return sentinelConfigurer.sentinelDataSourceHandler(beanFactory, sentinelConfigProperties, env);
    }

    @SpringBootConfiguration
    @ConditionalOnSentinelConfigEnabled
    @ConditionalOnSpringCloudBootstrapDisabled
    @ConditionalOnClass(value = {com.fasterxml.jackson.databind.ObjectMapper.class, com.alibaba.csp.sentinel.Env.class, com.alibaba.csp.sentinel.annotation.aspectj.AbstractSentinelAspectSupport.class, org.zodiac.sentinel.base.model.SentinelRule.class})
    protected static class SentinelJsonConverterConfiguration {

        private org.zodiac.sentinel.base.config.configurer.SentinelJsonConfigurer sentinelJsonConfigurer;

        public SentinelJsonConverterConfiguration(org.zodiac.sentinel.base.config.configurer.SentinelJsonConfigurer sentinelJsonConfigurer) {
            this.sentinelJsonConfigurer = sentinelJsonConfigurer;
        }

        @Bean("sentinel-json-flow-converter")
        protected org.zodiac.sentinel.base.datasource.converter.JsonSentinelDataSourceConverter jsonFlowConverter() {
            return sentinelJsonConfigurer.jsonFlowConverter();
        }

        @Bean("sentinel-json-degrade-converter")
        protected org.zodiac.sentinel.base.datasource.converter.JsonSentinelDataSourceConverter jsonDegradeConverter() {
            return sentinelJsonConfigurer.jsonDegradeConverter();
        }

        @Bean("sentinel-json-system-converter")
        protected org.zodiac.sentinel.base.datasource.converter.JsonSentinelDataSourceConverter jsonSystemConverter() {
            return sentinelJsonConfigurer.jsonSystemConverter();
        }

        @Bean("sentinel-json-authority-converter")
        protected org.zodiac.sentinel.base.datasource.converter.JsonSentinelDataSourceConverter jsonAuthorityConverter() {
            return sentinelJsonConfigurer.jsonAuthorityConverter();
        }

        @Bean("sentinel-json-param-flow-converter")
        protected org.zodiac.sentinel.base.datasource.converter.JsonSentinelDataSourceConverter jsonParamFlowConverter() {
            return sentinelJsonConfigurer.jsonParamFlowConverter();
        }
    }

    @SpringBootConfiguration
    @ConditionalOnSentinelConfigEnabled
    @ConditionalOnSpringCloudBootstrapDisabled
    @ConditionalOnClass(value = {com.fasterxml.jackson.dataformat.xml.XmlMapper.class, com.alibaba.csp.sentinel.Env.class, com.alibaba.csp.sentinel.annotation.aspectj.AbstractSentinelAspectSupport.class, org.zodiac.sentinel.base.model.SentinelRule.class})
    protected static class SentinelXmlConfiguration {

        private org.zodiac.sentinel.base.config.configurer.SentinelXmlConfigurer sentinelXmlConfigurer;

        public SentinelXmlConfiguration(org.zodiac.sentinel.base.config.configurer.SentinelXmlConfigurer sentinelXmlConfigurer) {
            this.sentinelXmlConfigurer = sentinelXmlConfigurer;
        }

        @Bean("sentinel-xml-flow-converter")
        protected org.zodiac.sentinel.base.datasource.converter.XmlSentinelDataSourceConverter xmlFlowConverter() {
            return sentinelXmlConfigurer.xmlFlowConverter();
        }

        @Bean("sentinel-xml-degrade-converter")
        protected org.zodiac.sentinel.base.datasource.converter.XmlSentinelDataSourceConverter xmlDegradeConverter() {
            return sentinelXmlConfigurer.xmlDegradeConverter();
        }

        @Bean("sentinel-xml-system-converter")
        protected org.zodiac.sentinel.base.datasource.converter.XmlSentinelDataSourceConverter xmlSystemConverter() {
            return sentinelXmlConfigurer.xmlSystemConverter();
        }

        @Bean("sentinel-xml-authority-converter")
        protected org.zodiac.sentinel.base.datasource.converter.XmlSentinelDataSourceConverter xmlAuthorityConverter() {
            return sentinelXmlConfigurer.xmlAuthorityConverter();
        }

        @Bean("sentinel-xml-param-flow-converter")
        protected org.zodiac.sentinel.base.datasource.converter.XmlSentinelDataSourceConverter xmlParamFlowConverter() {
            return sentinelXmlConfigurer.xmlParamFlowConverter();
        }

    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy