Polish pull request to fix other similar issues

Signed-off-by: Li Zhanhui <lizhanhui@gmail.com>
diff --git a/rocketmq-v5-client-spring-boot/src/main/java/org/apache/rocketmq/client/core/RocketMQClientTemplate.java b/rocketmq-v5-client-spring-boot/src/main/java/org/apache/rocketmq/client/core/RocketMQClientTemplate.java
index 637811d..046f3a3 100644
--- a/rocketmq-v5-client-spring-boot/src/main/java/org/apache/rocketmq/client/core/RocketMQClientTemplate.java
+++ b/rocketmq-v5-client-spring-boot/src/main/java/org/apache/rocketmq/client/core/RocketMQClientTemplate.java
@@ -51,9 +51,9 @@
 
     private SimpleConsumerBuilder simpleConsumerBuilder;
 
-    private Producer producer;
+    private volatile Producer producer;
 
-    private SimpleConsumer simpleConsumer;
+    private volatile SimpleConsumer simpleConsumer;
 
     private RocketMQMessageConverter rocketMQMessageConverter = new RocketMQMessageConverter();
 
@@ -61,12 +61,14 @@
 
     public Producer getProducer() {
         if (Objects.isNull(producer)) {
-            try {
-                Producer  producer =  producerBuilder.build();
-                 this.setProducer(producer);
-                 return producer;
-            } catch (ClientException e) {
-                throw new RuntimeException(e);
+            synchronized (RocketMQClientTemplate.class) {
+                if (Objects.isNull(producer)) {
+                    try {
+                        this.producer =  producerBuilder.build();
+                    } catch (ClientException e) {
+                        throw new RuntimeException(e);
+                    }
+                }
             }
         }
         return producer;
@@ -79,10 +81,14 @@
 
     public SimpleConsumer getSimpleConsumer() {
         if (Objects.isNull(simpleConsumer)) {
-            try {
-                return simpleConsumerBuilder.build();
-            } catch (ClientException e) {
-                throw new RuntimeException(e);
+            synchronized (RocketMQClientTemplate.class) {
+                if (Objects.isNull(simpleConsumer)) {
+                    try {
+                        this.simpleConsumer = simpleConsumerBuilder.build();
+                    } catch (ClientException e) {
+                        throw new RuntimeException(e);
+                    }
+                }
             }
         }
         return simpleConsumer;