ChildrenGreens opened a new issue, #593:
URL: https://github.com/apache/rocketmq-spring/issues/593

   1. 
`RocketMQAutoConfiguration`不应该`@Configuration(proxyBeanMethods=false)`不使用cglib代理提高性能么?
   2. 
`ListenerContainerConfiguration`等类中,因为是通过`@Import`导入的,类功能并不是一个配置类,所以无需加`@Configuration`注解。这种方式是不是有问题,更合理的方式应该在`RocketMQAutoConfiguration`通过@Bean方式导入即可。
   3. 
`RocketMQAutoConfiguration`类中rocketMQTemplate方法中,rocketMQMessageConverter参数,直接放了一个实体类,如果换成抽象类,会不会更好点增加用户的可扩展性。虽然`RocketMQMessageConverter`中默认使用了`CompositeMessageConverter`增加多种类型消息转换,但是我现在像增加一种比如像kryo消息转换方式,似乎就变得很麻烦。
   ```java
       @Bean(destroyMethod = "destroy")
       @Conditional(ProducerOrConsumerPropertyCondition.class)
       @ConditionalOnMissingBean(name = ROCKETMQ_TEMPLATE_DEFAULT_GLOBAL_NAME)
       public RocketMQTemplate rocketMQTemplate(RocketMQMessageConverter 
rocketMQMessageConverter) {
           RocketMQTemplate rocketMQTemplate = new RocketMQTemplate();
           if (applicationContext.containsBean(PRODUCER_BEAN_NAME)) {
               rocketMQTemplate.setProducer((DefaultMQProducer) 
applicationContext.getBean(PRODUCER_BEAN_NAME));
           }
           if (applicationContext.containsBean(CONSUMER_BEAN_NAME)) {
               rocketMQTemplate.setConsumer((DefaultLitePullConsumer) 
applicationContext.getBean(CONSUMER_BEAN_NAME));
           }
           
rocketMQTemplate.setMessageConverter(rocketMQMessageConverter.getMessageConverter());
           return rocketMQTemplate;
       }
   ```
   4. `RocketMQAutoConfiguration`如下代码,是不让整个类看起来很混乱?
   ``` java
       public static final String ROCKETMQ_TEMPLATE_DEFAULT_GLOBAL_NAME =
           "rocketMQTemplate";
       public static final String PRODUCER_BEAN_NAME = "defaultMQProducer";
       public static final String CONSUMER_BEAN_NAME = 
"defaultLitePullConsumer";
   
       @Autowired
       private Environment environment;
   
       private ApplicationContext applicationContext;
   
       @Override
       public void setApplicationContext(ApplicationContext applicationContext) 
throws BeansException {
           this.applicationContext = applicationContext;
       }
   ```
   类似问题很多,不能只停留在实现功能层面。spring源码还是优秀的,可以有很多借鉴和学习,希望阿里项目组好好优化优化,得到更多同行的认可。


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@rocketmq.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to