1717
1818package org .apache .rocketmq .spring .autoconfigure ;
1919
20+ import java .util .Collections ;
21+ import java .util .Map ;
22+ import java .util .concurrent .atomic .AtomicLong ;
23+ import java .util .stream .Collectors ;
2024import org .apache .rocketmq .client .AccessChannel ;
2125import org .apache .rocketmq .spring .annotation .ConsumeMode ;
2226import org .apache .rocketmq .spring .annotation .MessageModel ;
2529import org .apache .rocketmq .spring .core .RocketMQReplyListener ;
2630import org .apache .rocketmq .spring .support .DefaultRocketMQListenerContainer ;
2731import org .apache .rocketmq .spring .support .RocketMQMessageConverter ;
28- import org .apache .rocketmq .spring .support .SpringBeanUtil ;
2932import org .slf4j .Logger ;
3033import org .slf4j .LoggerFactory ;
3134import org .springframework .aop .framework .AopProxyUtils ;
35+ import org .springframework .aop .scope .ScopedProxyUtils ;
3236import org .springframework .beans .BeansException ;
3337import org .springframework .beans .factory .SmartInitializingSingleton ;
3438import org .springframework .beans .factory .support .BeanDefinitionValidationException ;
4044import org .springframework .core .env .StandardEnvironment ;
4145import org .springframework .util .StringUtils ;
4246
43- import java .util .Collections ;
44- import java .util .Map ;
45- import java .util .Objects ;
46- import java .util .concurrent .atomic .AtomicLong ;
47-
4847@ Configuration
4948public class ListenerContainerConfiguration implements ApplicationContextAware , SmartInitializingSingleton {
5049 private final static Logger log = LoggerFactory .getLogger (ListenerContainerConfiguration .class );
@@ -60,7 +59,7 @@ public class ListenerContainerConfiguration implements ApplicationContextAware,
6059 private RocketMQMessageConverter rocketMQMessageConverter ;
6160
6261 public ListenerContainerConfiguration (RocketMQMessageConverter rocketMQMessageConverter ,
63- StandardEnvironment environment , RocketMQProperties rocketMQProperties ) {
62+ StandardEnvironment environment , RocketMQProperties rocketMQProperties ) {
6463 this .rocketMQMessageConverter = rocketMQMessageConverter ;
6564 this .environment = environment ;
6665 this .rocketMQProperties = rocketMQProperties ;
@@ -73,12 +72,11 @@ public void setApplicationContext(ApplicationContext applicationContext) throws
7372
7473 @ Override
7574 public void afterSingletonsInstantiated () {
76- Map <String , Object > beans = SpringBeanUtil .getBeansWithAnnotation (this .applicationContext , RocketMQMessageListener .
77- class );
75+ Map <String , Object > beans = this .applicationContext .getBeansWithAnnotation (RocketMQMessageListener .class )
76+ .entrySet ().stream ().filter (entry -> !ScopedProxyUtils .isScopedTarget (entry .getKey ()))
77+ .collect (Collectors .toMap (Map .Entry ::getKey , Map .Entry ::getValue ));
7878
79- if (Objects .nonNull (beans )) {
80- beans .forEach (this ::registerContainer );
81- }
79+ beans .forEach (this ::registerContainer );
8280 }
8381
8482 private void registerContainer (String beanName , Object bean ) {
@@ -130,7 +128,7 @@ private void registerContainer(String beanName, Object bean) {
130128 }
131129
132130 private DefaultRocketMQListenerContainer createRocketMQListenerContainer (String name , Object bean ,
133- RocketMQMessageListener annotation ) {
131+ RocketMQMessageListener annotation ) {
134132 DefaultRocketMQListenerContainer container = new DefaultRocketMQListenerContainer ();
135133
136134 container .setRocketMQMessageListener (annotation );
@@ -148,13 +146,11 @@ private DefaultRocketMQListenerContainer createRocketMQListenerContainer(String
148146 container .setSelectorExpression (tags );
149147 }
150148 container .setConsumerGroup (environment .resolvePlaceholders (annotation .consumerGroup ()));
151-
152149 if (RocketMQListener .class .isAssignableFrom (bean .getClass ())) {
153150 container .setRocketMQListener ((RocketMQListener ) bean );
154151 } else if (RocketMQReplyListener .class .isAssignableFrom (bean .getClass ())) {
155152 container .setRocketMQReplyListener ((RocketMQReplyListener ) bean );
156153 }
157-
158154 container .setMessageConverter (rocketMQMessageConverter .getMessageConverter ());
159155 container .setName (name );
160156
0 commit comments