Skip to content

Commit 82f3e58

Browse files
committed
chore(autoconfigure):polish the pr #210
1 parent 2853384 commit 82f3e58

4 files changed

Lines changed: 27 additions & 86 deletions

File tree

rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/ExtProducerResetConfiguration.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,17 @@
1818
package org.apache.rocketmq.spring.autoconfigure;
1919

2020
import java.util.Map;
21-
import java.util.Objects;
21+
import java.util.stream.Collectors;
2222
import org.apache.rocketmq.client.exception.MQClientException;
2323
import org.apache.rocketmq.client.producer.DefaultMQProducer;
2424
import org.apache.rocketmq.spring.annotation.ExtRocketMQTemplateConfiguration;
2525
import org.apache.rocketmq.spring.core.RocketMQTemplate;
2626
import org.apache.rocketmq.spring.support.RocketMQMessageConverter;
2727
import org.apache.rocketmq.spring.support.RocketMQUtil;
28-
import org.apache.rocketmq.spring.support.SpringBeanUtil;
2928
import org.slf4j.Logger;
3029
import org.slf4j.LoggerFactory;
3130
import org.springframework.aop.framework.AopProxyUtils;
31+
import org.springframework.aop.scope.ScopedProxyUtils;
3232
import org.springframework.beans.BeansException;
3333
import org.springframework.beans.factory.SmartInitializingSingleton;
3434
import org.springframework.beans.factory.support.BeanDefinitionValidationException;
@@ -53,7 +53,7 @@ public class ExtProducerResetConfiguration implements ApplicationContextAware, S
5353
private RocketMQMessageConverter rocketMQMessageConverter;
5454

5555
public ExtProducerResetConfiguration(RocketMQMessageConverter rocketMQMessageConverter,
56-
StandardEnvironment environment, RocketMQProperties rocketMQProperties) {
56+
StandardEnvironment environment, RocketMQProperties rocketMQProperties) {
5757
this.rocketMQMessageConverter = rocketMQMessageConverter;
5858
this.environment = environment;
5959
this.rocketMQProperties = rocketMQProperties;
@@ -66,11 +66,11 @@ public void setApplicationContext(ApplicationContext applicationContext) throws
6666

6767
@Override
6868
public void afterSingletonsInstantiated() {
69-
Map<String, Object> beans = SpringBeanUtil.getBeansWithAnnotation(this.applicationContext, ExtRocketMQTemplateConfiguration.class);
69+
Map<String, Object> beans = this.applicationContext.getBeansWithAnnotation(ExtRocketMQTemplateConfiguration.class)
70+
.entrySet().stream().filter(entry -> !ScopedProxyUtils.isScopedTarget(entry.getKey()))
71+
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
7072

71-
if (Objects.nonNull(beans)) {
72-
beans.forEach(this::registerTemplate);
73-
}
73+
beans.forEach(this::registerTemplate);
7474
}
7575

7676
private void registerTemplate(String beanName, Object bean) {
@@ -131,7 +131,7 @@ private DefaultMQProducer createProducer(ExtRocketMQTemplateConfiguration annota
131131
}
132132

133133
private void validate(ExtRocketMQTemplateConfiguration annotation,
134-
GenericApplicationContext genericApplicationContext) {
134+
GenericApplicationContext genericApplicationContext) {
135135
if (genericApplicationContext.isBeanNameInUse(annotation.value())) {
136136
throw new BeanDefinitionValidationException(String.format("Bean {} has been used in Spring Application Context, " +
137137
"please check the @ExtRocketMQTemplateConfiguration",

rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/ListenerContainerConfiguration.java

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@
1717

1818
package 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;
2024
import org.apache.rocketmq.client.AccessChannel;
2125
import org.apache.rocketmq.spring.annotation.ConsumeMode;
2226
import org.apache.rocketmq.spring.annotation.MessageModel;
@@ -25,10 +29,10 @@
2529
import org.apache.rocketmq.spring.core.RocketMQReplyListener;
2630
import org.apache.rocketmq.spring.support.DefaultRocketMQListenerContainer;
2731
import org.apache.rocketmq.spring.support.RocketMQMessageConverter;
28-
import org.apache.rocketmq.spring.support.SpringBeanUtil;
2932
import org.slf4j.Logger;
3033
import org.slf4j.LoggerFactory;
3134
import org.springframework.aop.framework.AopProxyUtils;
35+
import org.springframework.aop.scope.ScopedProxyUtils;
3236
import org.springframework.beans.BeansException;
3337
import org.springframework.beans.factory.SmartInitializingSingleton;
3438
import org.springframework.beans.factory.support.BeanDefinitionValidationException;
@@ -40,11 +44,6 @@
4044
import org.springframework.core.env.StandardEnvironment;
4145
import 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
4948
public 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

rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/RocketMQTransactionConfiguration.java

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,19 @@
1818
package org.apache.rocketmq.spring.autoconfigure;
1919

2020
import java.util.Map;
21-
import java.util.Objects;
2221
import java.util.concurrent.LinkedBlockingDeque;
2322
import java.util.concurrent.ThreadPoolExecutor;
2423
import java.util.concurrent.TimeUnit;
25-
24+
import java.util.stream.Collectors;
2625
import org.apache.rocketmq.client.producer.TransactionMQProducer;
2726
import org.apache.rocketmq.spring.annotation.RocketMQTransactionListener;
2827
import org.apache.rocketmq.spring.core.RocketMQLocalTransactionListener;
2928
import org.apache.rocketmq.spring.core.RocketMQTemplate;
3029
import org.apache.rocketmq.spring.support.RocketMQUtil;
31-
import org.apache.rocketmq.spring.support.SpringBeanUtil;
3230
import org.slf4j.Logger;
3331
import org.slf4j.LoggerFactory;
3432
import org.springframework.aop.framework.AopProxyUtils;
33+
import org.springframework.aop.scope.ScopedProxyUtils;
3534
import org.springframework.beans.BeansException;
3635
import org.springframework.beans.factory.SmartInitializingSingleton;
3736
import org.springframework.context.ApplicationContext;
@@ -46,18 +45,16 @@ public class RocketMQTransactionConfiguration implements ApplicationContextAware
4645

4746
private ConfigurableApplicationContext applicationContext;
4847

49-
@Override
50-
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
48+
@Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
5149
this.applicationContext = (ConfigurableApplicationContext) applicationContext;
5250
}
5351

54-
@Override
55-
public void afterSingletonsInstantiated() {
56-
Map<String, Object> beans = SpringBeanUtil.getBeansWithAnnotation(this.applicationContext, RocketMQTransactionListener.class);
52+
@Override public void afterSingletonsInstantiated() {
53+
Map<String, Object> beans = this.applicationContext.getBeansWithAnnotation(RocketMQTransactionListener.class)
54+
.entrySet().stream().filter(entry -> !ScopedProxyUtils.isScopedTarget(entry.getKey()))
55+
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
5756

58-
if (Objects.nonNull(beans)) {
59-
beans.forEach(this::registerTransactionListener);
60-
}
57+
beans.forEach(this::registerTransactionListener);
6158
}
6259

6360
private void registerTransactionListener(String beanName, Object bean) {

rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/support/SpringBeanUtil.java

Lines changed: 0 additions & 52 deletions
This file was deleted.

0 commit comments

Comments
 (0)