diff --git a/schbrain-canal-client/src/main/java/com/schbrain/canal/client/annotation/CanalEventListener.java b/schbrain-canal-client/src/main/java/com/schbrain/canal/client/annotation/CanalEventListener.java index 61b69247875d053d83e5a383bbd8925f4c8b7ae7..f91aaf0021345e10838d4feb7491c55cf8ed60c9 100644 --- a/schbrain-canal-client/src/main/java/com/schbrain/canal/client/annotation/CanalEventListener.java +++ b/schbrain-canal-client/src/main/java/com/schbrain/canal/client/annotation/CanalEventListener.java @@ -5,16 +5,14 @@ import org.springframework.stereotype.Component; import java.lang.annotation.*; - +@Component +@Documented @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) -@Documented -@Component public @interface CanalEventListener { /** * bean name - * @return */ @AliasFor(annotation = Component.class) String value() default ""; diff --git a/schbrain-canal-client/src/main/java/com/schbrain/canal/client/conf/CanalClientConfiguration.java b/schbrain-canal-client/src/main/java/com/schbrain/canal/client/conf/CanalClientConfiguration.java index 2f4b446e2805b876bd8bb4c35d58e144f85d459e..a265213dca2b730a623d092676fdaaeefccba190 100644 --- a/schbrain-canal-client/src/main/java/com/schbrain/canal/client/conf/CanalClientConfiguration.java +++ b/schbrain-canal-client/src/main/java/com/schbrain/canal/client/conf/CanalClientConfiguration.java @@ -9,6 +9,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; @@ -17,7 +18,6 @@ import org.springframework.core.annotation.Order; * 启动配置类 * * @author zhuyf - * @date 2022/6/16 */ @Slf4j public class CanalClientConfiguration { @@ -27,17 +27,18 @@ public class CanalClientConfiguration { @Bean @Order(Ordered.HIGHEST_PRECEDENCE) - public BeanUtil beanUtil() { - return new BeanUtil(); + public BeanUtil beanUtil(ApplicationContext context) { + return new BeanUtil(context); } @Bean @ConditionalOnMissingBean(CanalClient.class) - private CanalClient canalClient(ConfigurableBeanFactory configurableBeanFactory) { + private CanalClient canalClient(ConfigurableBeanFactory beanFactory) { log.info("starting canal client...."); TransponderFactory factory = MessageTransponders.defaultMessageTransponder(); - CanalClient client = new SimpleCanalClient(schbrainCanalConfig,factory,configurableBeanFactory); + CanalClient client = new SimpleCanalClient(schbrainCanalConfig, factory, beanFactory); client.start(); return client; } + } diff --git a/schbrain-canal-client/src/main/java/com/schbrain/canal/client/conf/SchbrainCanalConfig.java b/schbrain-canal-client/src/main/java/com/schbrain/canal/client/conf/SchbrainCanalConfig.java index b6e5ca26e0b2c76f25e4cfd2b4e4cefe682adeb4..600dafab00f53673e56df99939f98e4dbef55839 100644 --- a/schbrain-canal-client/src/main/java/com/schbrain/canal/client/conf/SchbrainCanalConfig.java +++ b/schbrain-canal-client/src/main/java/com/schbrain/canal/client/conf/SchbrainCanalConfig.java @@ -1,16 +1,18 @@ package com.schbrain.canal.client.conf; +import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; + import java.util.LinkedHashMap; import java.util.Map; /** * Canal配置 + * * @author zhuyf - * @date 2022/6/16 + * @since 2022/6/16 */ -@Component +@Data @ConfigurationProperties(prefix = "canal.client") public class SchbrainCanalConfig { @@ -19,19 +21,4 @@ public class SchbrainCanalConfig { */ private Map instances = new LinkedHashMap<>(); - /** - * 获取实例列表 - * @return - */ - public Map getInstances() { - return instances; - } - - /** - * 设置实例列表 - * @param instances - */ - public void setInstances(Map instances) { - this.instances = instances; - } } diff --git a/schbrain-canal-client/src/main/java/com/schbrain/canal/client/utils/BeanUtil.java b/schbrain-canal-client/src/main/java/com/schbrain/canal/client/utils/BeanUtil.java index 016cd10f2058d9730efb3fa8cebf60a810edd67c..8fb2afe9614ae2bb8f96a11a49884e08ba910212 100644 --- a/schbrain-canal-client/src/main/java/com/schbrain/canal/client/utils/BeanUtil.java +++ b/schbrain-canal-client/src/main/java/com/schbrain/canal/client/utils/BeanUtil.java @@ -1,73 +1,59 @@ package com.schbrain.canal.client.utils; -import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; -import org.springframework.stereotype.Component; import java.lang.annotation.Annotation; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @author zhuyf - * @date 2022/6/16 + * @since 2022/6/16 */ -@Component -public class BeanUtil implements ApplicationContextAware { +public class BeanUtil { private static ApplicationContext applicationContext; - @Override - public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { - BeanUtil.applicationContext = applicationContext; + public BeanUtil(ApplicationContext context) { + applicationContext = context; } /** * get bean - * @param clazz - * @param - * @return */ - public static T getBean(Class clazz) { - T obj; + public static T getBean(Class type) { + T bean; try { - obj = applicationContext.getBean(clazz); + bean = applicationContext.getBean(type); } catch (Exception e) { - obj = null; + bean = null; } - return obj; + return bean; } /** * get bean list - * @param clazz - * @param - * @return */ - public static List getBeansOfType(Class clazz) { - Map map; + public static List getBeansOfType(Class type) { + Map beanMap; try { - map = applicationContext.getBeansOfType(clazz); + beanMap = applicationContext.getBeansOfType(type); } catch (Exception e) { - map = null; + beanMap = null; } - return map == null ? null : new ArrayList<>(map.values()); + return beanMap == null ? null : new ArrayList<>(beanMap.values()); } /** * get with annotation - * @param anno - * @return */ - public static Map getBeansWithAnnotation(Class anno) { - Map map; + public static Map getBeansWithAnnotation(Class annotationType) { + Map beanMap; try { - map = applicationContext.getBeansWithAnnotation(anno); + beanMap = applicationContext.getBeansWithAnnotation(annotationType); } catch (Exception e) { - map = null; + beanMap = null; } - return map; + return beanMap; } + }