solve the problems arising from review
diff --git a/rocketmq-spring-boot-samples/rocketmq-consume-demo/src/main/java/org/apache/rocketmq/samples/springboot/consumer/UserConsumer.java b/rocketmq-spring-boot-samples/rocketmq-consume-demo/src/main/java/org/apache/rocketmq/samples/springboot/consumer/UserConsumer.java
index 392748a..b9e3647 100644
--- a/rocketmq-spring-boot-samples/rocketmq-consume-demo/src/main/java/org/apache/rocketmq/samples/springboot/consumer/UserConsumer.java
+++ b/rocketmq-spring-boot-samples/rocketmq-consume-demo/src/main/java/org/apache/rocketmq/samples/springboot/consumer/UserConsumer.java
@@ -17,6 +17,7 @@
 
 package org.apache.rocketmq.samples.springboot.consumer;
 
+import org.apache.rocketmq.samples.springboot.domain.User;
 import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
 import org.apache.rocketmq.spring.core.RocketMQListener;
 import org.springframework.stereotype.Service;
diff --git a/rocketmq-spring-boot-samples/rocketmq-consume-demo/src/main/java/org/apache/rocketmq/samples/springboot/consumer/User.java b/rocketmq-spring-boot-samples/rocketmq-consume-demo/src/main/java/org/apache/rocketmq/samples/springboot/domain/User.java
similarity index 95%
rename from rocketmq-spring-boot-samples/rocketmq-consume-demo/src/main/java/org/apache/rocketmq/samples/springboot/consumer/User.java
rename to rocketmq-spring-boot-samples/rocketmq-consume-demo/src/main/java/org/apache/rocketmq/samples/springboot/domain/User.java
index e020fc2..4f2579f 100644
--- a/rocketmq-spring-boot-samples/rocketmq-consume-demo/src/main/java/org/apache/rocketmq/samples/springboot/consumer/User.java
+++ b/rocketmq-spring-boot-samples/rocketmq-consume-demo/src/main/java/org/apache/rocketmq/samples/springboot/domain/User.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.rocketmq.samples.springboot.consumer;
+package org.apache.rocketmq.samples.springboot.domain;
 
 public class User {
     private String userName;
diff --git a/rocketmq-spring-boot-samples/rocketmq-produce-demo/src/main/java/org/apache/rocketmq/samples/springboot/ProducerApplication.java b/rocketmq-spring-boot-samples/rocketmq-produce-demo/src/main/java/org/apache/rocketmq/samples/springboot/ProducerApplication.java
index 2bec6fd..8abc4ff 100644
--- a/rocketmq-spring-boot-samples/rocketmq-produce-demo/src/main/java/org/apache/rocketmq/samples/springboot/ProducerApplication.java
+++ b/rocketmq-spring-boot-samples/rocketmq-produce-demo/src/main/java/org/apache/rocketmq/samples/springboot/ProducerApplication.java
@@ -20,6 +20,7 @@
 import org.apache.rocketmq.client.producer.SendCallback;
 import org.apache.rocketmq.client.producer.SendResult;
 import org.apache.rocketmq.samples.springboot.domain.OrderPaidEvent;
+import org.apache.rocketmq.samples.springboot.domain.User;
 import org.apache.rocketmq.spring.annotation.RocketMQTransactionListener;
 import org.apache.rocketmq.spring.core.RocketMQLocalTransactionListener;
 import org.apache.rocketmq.spring.core.RocketMQLocalTransactionState;
@@ -74,12 +75,12 @@
         SendResult sendResult = rocketMQTemplate.syncSend(springTopic, "Hello, World!");
         System.out.printf("syncSend1 to topic %s sendResult=%s %n", springTopic, sendResult);
 
-        SendResult sendResult2 = rocketMQTemplate.syncSend(userTopic, new User().setUserAge((byte)18).setUserName("Kitty"));
-        System.out.printf("syncSend1 to topic %s sendResult=%s %n", userTopic, sendResult2);
+        sendResult = rocketMQTemplate.syncSend(userTopic, new User().setUserAge((byte)18).setUserName("Kitty"));
+        System.out.printf("syncSend1 to topic %s sendResult=%s %n", userTopic, sendResult);
 
-        SendResult sendResult3 = rocketMQTemplate.syncSend(userTopic, MessageBuilder.withPayload(
+        sendResult = rocketMQTemplate.syncSend(userTopic, MessageBuilder.withPayload(
             new User().setUserAge((byte)21).setUserName("Lester")).setHeader(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE).build());
-        System.out.printf("syncSend1 to topic %s sendResult=%s %n", userTopic, sendResult3);
+        System.out.printf("syncSend1 to topic %s sendResult=%s %n", userTopic, sendResult);
 
         // Use the extRocketMQTemplate
         sendResult = extRocketMQTemplate.syncSend(springTopic, MessageBuilder.withPayload("Hello, World!2222".getBytes()).build());
@@ -141,8 +142,7 @@
                     msg.getPayload(), sendResult.getSendStatus());
 
                 Thread.sleep(10);
-            }
-            catch (Exception e) {
+            } catch (Exception e) {
                 e.printStackTrace();
             }
         }
@@ -205,35 +205,4 @@
         }
     }
 
-    class User {
-        private String userName;
-        private Byte userAge;
-
-        public String getUserName() {
-            return userName;
-        }
-
-        public User setUserName(String userName) {
-            this.userName = userName;
-            return this;
-        }
-
-        public Byte getUserAge() {
-            return userAge;
-        }
-
-        public User setUserAge(Byte userAge) {
-            this.userAge = userAge;
-            return this;
-        }
-
-        @Override
-        public String toString() {
-            return "User{" +
-                "userName='" + userName + '\'' +
-                ", userAge=" + userAge +
-                '}';
-        }
-    }
-
 }
diff --git a/rocketmq-spring-boot-samples/rocketmq-produce-demo/src/main/java/org/apache/rocketmq/samples/springboot/domain/User.java b/rocketmq-spring-boot-samples/rocketmq-produce-demo/src/main/java/org/apache/rocketmq/samples/springboot/domain/User.java
new file mode 100644
index 0000000..42acc11
--- /dev/null
+++ b/rocketmq-spring-boot-samples/rocketmq-produce-demo/src/main/java/org/apache/rocketmq/samples/springboot/domain/User.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.rocketmq.samples.springboot.domain;
+
+public class User {
+        private String userName;
+        private Byte userAge;
+
+        public String getUserName() {
+            return userName;
+        }
+
+        public User setUserName(String userName) {
+            this.userName = userName;
+            return this;
+        }
+
+        public Byte getUserAge() {
+            return userAge;
+        }
+
+        public User setUserAge(Byte userAge) {
+            this.userAge = userAge;
+            return this;
+        }
+
+        @Override
+        public String toString() {
+            return "User{" +
+                "userName='" + userName + '\'' +
+                ", userAge=" + userAge +
+                '}';
+        }
+    }
\ No newline at end of file
diff --git a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/ExtProducerResetConfiguration.java b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/ExtProducerResetConfiguration.java
index 8bf061b..0e1e37e 100644
--- a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/ExtProducerResetConfiguration.java
+++ b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/ExtProducerResetConfiguration.java
@@ -95,8 +95,7 @@
         mqProducer.setInstanceName(beanName);
         try {
             mqProducer.start();
-        }
-        catch (MQClientException e) {
+        } catch (MQClientException e) {
             throw new BeanDefinitionValidationException(String.format("Failed to startup MQProducer for RocketMQTemplate {}",
                 beanName), e);
         }
@@ -129,8 +128,7 @@
             producer = new DefaultMQProducer(groupName, new AclClientRPCHook(new SessionCredentials(ak, sk)),
                 annotation.enableMsgTrace(), customizedTraceTopic);
             producer.setVipChannelEnabled(false);
-        }
-        else {
+        } else {
             producer = new DefaultMQProducer(groupName, annotation.enableMsgTrace(), customizedTraceTopic);
         }
 
diff --git a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/JacksonFallbackConfiguration.java b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/JacksonFallbackConfiguration.java
index d25ca8d..b6518c0 100644
--- a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/JacksonFallbackConfiguration.java
+++ b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/JacksonFallbackConfiguration.java
@@ -24,6 +24,7 @@
 
 @Configuration
 @ConditionalOnMissingBean(ObjectMapper.class)
+@Deprecated
 class JacksonFallbackConfiguration {
 
     @Bean
diff --git a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/ListenerContainerConfiguration.java b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/ListenerContainerConfiguration.java
index 82d90d2..9d65d75 100644
--- a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/ListenerContainerConfiguration.java
+++ b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/ListenerContainerConfiguration.java
@@ -118,8 +118,7 @@
         if (!container.isRunning()) {
             try {
                 container.start();
-            }
-            catch (Exception e) {
+            } catch (Exception e) {
                 log.error("Started container failed. {}", container, e);
                 throw new RuntimeException(e);
             }
diff --git a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/RocketMQAutoConfiguration.java b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/RocketMQAutoConfiguration.java
index 91b2609..dbe697b 100644
--- a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/RocketMQAutoConfiguration.java
+++ b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/autoconfigure/RocketMQAutoConfiguration.java
@@ -91,8 +91,7 @@
                 rocketMQProperties.getProducer().isEnableMsgTrace(),
                 rocketMQProperties.getProducer().getCustomizedTraceTopic());
             producer.setVipChannelEnabled(false);
-        }
-        else {
+        } else {
             producer = new DefaultMQProducer(groupName, rocketMQProperties.getProducer().isEnableMsgTrace(),
                 rocketMQProperties.getProducer().getCustomizedTraceTopic());
         }
diff --git a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/core/RocketMQTemplate.java b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/core/RocketMQTemplate.java
index 51f442a..682bbbe 100644
--- a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/core/RocketMQTemplate.java
+++ b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/core/RocketMQTemplate.java
@@ -160,8 +160,7 @@
                 log.debug("send messages cost: {} ms, msgId:{}", costTime, sendResult.getMsgId());
             }
             return sendResult;
-        }
-        catch (Exception e) {
+        } catch (Exception e) {
             log.error("syncSend with batch failed. destination:{}, messages.size:{} ", destination, messages.size());
             throw new MessagingException(e.getMessage(), e);
         }
@@ -193,8 +192,7 @@
                 log.debug("send message cost: {} ms, msgId:{}", costTime, sendResult.getMsgId());
             }
             return sendResult;
-        }
-        catch (Exception e) {
+        } catch (Exception e) {
             log.error("syncSend failed. destination:{}, message:{} ", destination, message);
             throw new MessagingException(e.getMessage(), e);
         }
@@ -259,8 +257,7 @@
                 log.debug("send message cost: {} ms, msgId:{}", costTime, sendResult.getMsgId());
             }
             return sendResult;
-        }
-        catch (Exception e) {
+        } catch (Exception e) {
             log.error("syncSendOrderly failed. destination:{}, message:{} ", destination, message);
             throw new MessagingException(e.getMessage(), e);
         }
@@ -314,8 +311,7 @@
                 rocketMsg.setDelayTimeLevel(delayLevel);
             }
             producer.send(rocketMsg, sendCallback, timeout);
-        }
-        catch (Exception e) {
+        } catch (Exception e) {
             log.info("asyncSend failed. destination:{}, message:{} ", destination, message);
             throw new MessagingException(e.getMessage(), e);
         }
@@ -335,8 +331,7 @@
 
     /**
      * <p> Send message to broker asynchronously. asynchronous transmission is generally used in response time
-     * sensitive
-     * business scenarios. </p>
+     * sensitive business scenarios. </p>
      * <p>
      * This method returns immediately. On sending completion, <code>sendCallback</code> will be executed.
      * <p>
@@ -395,8 +390,7 @@
         try {
             org.apache.rocketmq.common.message.Message rocketMsg = this.createRocketMqMessage(destination, message);
             producer.send(rocketMsg, messageQueueSelector, hashKey, sendCallback, timeout);
-        }
-        catch (Exception e) {
+        } catch (Exception e) {
             log.error("asyncSendOrderly failed. destination:{}, message:{} ", destination, message);
             throw new MessagingException(e.getMessage(), e);
         }
@@ -458,8 +452,7 @@
         try {
             org.apache.rocketmq.common.message.Message rocketMsg = this.createRocketMqMessage(destination, message);
             producer.sendOneway(rocketMsg);
-        }
-        catch (Exception e) {
+        } catch (Exception e) {
             log.error("sendOneWay failed. destination:{}, message:{} ", destination, message);
             throw new MessagingException(e.getMessage(), e);
         }
@@ -491,8 +484,7 @@
         try {
             org.apache.rocketmq.common.message.Message rocketMsg = this.createRocketMqMessage(destination, message);
             producer.sendOneway(rocketMsg, messageQueueSelector, hashKey);
-        }
-        catch (Exception e) {
+        } catch (Exception e) {
             log.error("sendOneWayOrderly failed. destination:{}, message:{}", destination, message);
             throw new MessagingException(e.getMessage(), e);
         }
@@ -577,8 +569,7 @@
             TransactionMQProducer txProducer = this.stageMQProducer(txProducerGroup);
             org.apache.rocketmq.common.message.Message rocketMsg = this.createRocketMqMessage(destination, message);
             return txProducer.sendMessageInTransaction(rocketMsg, arg);
-        }
-        catch (MQClientException e) {
+        } catch (MQClientException e) {
             throw RocketMQUtil.convert(e);
         }
     }
@@ -586,8 +577,7 @@
     /**
      * Remove a TransactionMQProducer from cache by manual.
      * <p>Note: RocketMQTemplate can release all cached producers when bean destroying, it is not recommended to
-     * directly
-     * use this method by user.
+     * directly use this method by user.
      *
      * @param txProducerGroup
      * @throws MessagingException
@@ -626,8 +616,7 @@
         try {
             txProducer.start();
             cache.put(txProducerGroup, txProducer);
-        }
-        catch (MQClientException e) {
+        } catch (MQClientException e) {
             throw RocketMQUtil.convert(e);
         }
 
@@ -644,8 +633,7 @@
             txProducer = new TransactionMQProducer(name, rpcHook);
             txProducer.setVipChannelEnabled(false);
             txProducer.setInstanceName(RocketMQUtil.getInstanceName(rpcHook, name));
-        }
-        else {
+        } else {
             txProducer = new TransactionMQProducer(name);
         }
         txProducer.setTransactionListener(RocketMQUtil.convert(transactionListener));
diff --git a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/support/DefaultRocketMQListenerContainer.java b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/support/DefaultRocketMQListenerContainer.java
index c38db99..67d06dc 100644
--- a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/support/DefaultRocketMQListenerContainer.java
+++ b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/support/DefaultRocketMQListenerContainer.java
@@ -88,6 +88,7 @@
 
     private String charset = "UTF-8";
 
+    @Deprecated
     private ObjectMapper objectMapper;
 
     private MessageConverter messageConverter;
@@ -169,10 +170,12 @@
         this.charset = charset;
     }
 
+    @Deprecated
     public ObjectMapper getObjectMapper() {
         return objectMapper;
     }
 
+    @Deprecated
     public void setObjectMapper(ObjectMapper objectMapper) {
         this.objectMapper = objectMapper;
     }
@@ -389,7 +392,7 @@
             } else {
                 // If msgType not string, use objectMapper change it.
                 try {
-                    return messageConverter.fromMessage(MessageBuilder.withPayload(str).build(),messageType);
+                    return this.getMessageConverter().fromMessage(MessageBuilder.withPayload(str).build(), messageType);
                 } catch (Exception e) {
                     log.info("convert failed. str:{}, msgType:{}", str, messageType);
                     throw new RuntimeException("cannot convert message to " + messageType, e);
diff --git a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/support/RocketMQMessageConverter.java b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/support/RocketMQMessageConverter.java
index f8dbee9..c2ee1da 100644
--- a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/support/RocketMQMessageConverter.java
+++ b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/support/RocketMQMessageConverter.java
@@ -64,8 +64,8 @@
                     (MessageConverter)ClassUtils.forName(
                         "com.alibaba.fastjson.support.spring.messaging.MappingFastJsonMessageConverter",
                         ClassUtils.getDefaultClassLoader()).newInstance());
-            }
-            catch (ClassNotFoundException | IllegalAccessException | InstantiationException e) {
+            } catch (ClassNotFoundException | IllegalAccessException | InstantiationException ignored) {
+                //ignore this exception
             }
         }
         messageConverter = new CompositeMessageConverter(messageConverters);
diff --git a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/support/RocketMQUtil.java b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/support/RocketMQUtil.java
index 720486d..735609b 100644
--- a/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/support/RocketMQUtil.java
+++ b/rocketmq-spring-boot/src/main/java/org/apache/rocketmq/spring/support/RocketMQUtil.java
@@ -137,16 +137,13 @@
 
         if (payloadObj instanceof String) {
             payloads = ((String)payloadObj).getBytes(Charset.forName(charset));
-        }
-        else if (payloadObj instanceof byte[]) {
+        } else if (payloadObj instanceof byte[]) {
             payloads = (byte[])message.getPayload();
-        }
-        else {
+        } else {
             try {
                 String jsonObj = objectMapper.writeValueAsString(payloadObj);
                 payloads = jsonObj.getBytes(Charset.forName(charset));
-            }
-            catch (Exception e) {
+            } catch (Exception e) {
                 throw new RuntimeException("convert to RocketMQ message failed.", e);
             }
         }
@@ -181,8 +178,7 @@
             int flag = 0;
             try {
                 flag = Integer.parseInt(flagObj.toString());
-            }
-            catch (NumberFormatException e) {
+            } catch (NumberFormatException e) {
                 // Ignore it
                 if (log.isInfoEnabled()) {
                     log.info("flag must be integer, flagObj:{}", flagObj);
@@ -215,11 +211,9 @@
             }
             if (payloadObj instanceof String) {
                 payloads = ((String)payloadObj).getBytes(Charset.forName(charset));
-            }
-            else if (payloadObj instanceof byte[]) {
+            } else if (payloadObj instanceof byte[]) {
                 payloads = (byte[])message.getPayload();
-            }
-            else {
+            } else {
                 String jsonObj = (String)messageConverter.fromMessage(message, payloadObj.getClass());
                 if (null == jsonObj) {
                     throw new RuntimeException(String.format(
@@ -228,8 +222,7 @@
                 }
                 payloads = jsonObj.getBytes(Charset.forName(charset));
             }
-        }
-        catch (Exception e) {
+        } catch (Exception e) {
             throw new RuntimeException("convert to RocketMQ message failed.", e);
         }
         return getAndWrapMessage(destination, message.getHeaders(), payloads);
@@ -240,8 +233,7 @@
         try {
             ak = env.resolveRequiredPlaceholders(accessKeyOrExpr);
             sk = env.resolveRequiredPlaceholders(secretKeyOrExpr);
-        }
-        catch (Exception e) {
+        } catch (Exception e) {
             // Ignore it
             ak = null;
             sk = null;