[ISSUE #612] Support Springboot 3.X (#611)

1. Replace `@PostConstruct` with constructor
2. log format style
3. Springboot 3.x autoconfigure

Co-authored-by: pangxiao1 <pangxiao1@xiaomi.com>
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 a8c7379..9ed8ad9 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
@@ -29,7 +29,6 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.autoconfigure.AutoConfigureBefore;
 import org.springframework.boot.autoconfigure.condition.AnyNestedCondition;
@@ -48,8 +47,6 @@
 import org.springframework.util.Assert;
 import org.springframework.util.StringUtils;
 
-import javax.annotation.PostConstruct;
-
 @Configuration
 @EnableConfigurationProperties(RocketMQProperties.class)
 @ConditionalOnClass({MQAdmin.class})
@@ -66,17 +63,20 @@
     public static final String PRODUCER_BEAN_NAME = "defaultMQProducer";
     public static final String CONSUMER_BEAN_NAME = "defaultLitePullConsumer";
 
-    @Autowired
-    private Environment environment;
+    private final Environment environment;
 
     private ApplicationContext applicationContext;
 
+    public RocketMQAutoConfiguration(Environment environment) {
+        this.environment = environment;
+        checkProperties();
+    }
+
     @Override
     public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
         this.applicationContext = applicationContext;
     }
 
-    @PostConstruct
     public void checkProperties() {
         String nameServer = environment.getProperty("rocketmq.name-server", String.class);
         log.debug("rocketmq.nameServer = {}", nameServer);
@@ -117,7 +117,7 @@
         producer.setUseTLS(producerConfig.isTlsEnable());
         producer.setNamespace(producerConfig.getNamespace());
         producer.setInstanceName(producerConfig.getInstanceName());
-        log.info(String.format("a producer (%s) init on namesrv %s",  groupName,nameServer));
+        log.info("a producer ({}) init on namesrv {}",  groupName, nameServer);
         return producer;
     }
 
@@ -149,7 +149,7 @@
         litePullConsumer.setCustomizedTraceTopic(consumerConfig.getCustomizedTraceTopic());
         litePullConsumer.setNamespace(consumerConfig.getNamespace());
         litePullConsumer.setInstanceName(consumerConfig.getInstanceName());
-        log.info(String.format("a pull consumer(%s sub %s) init on namesrv %s",  groupName, topicName,nameServer));
+        log.info("a pull consumer({} sub {}) init on namesrv {}",  groupName, topicName, nameServer);
         return litePullConsumer;
     }
 
diff --git a/rocketmq-v5-client-spring-boot/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/rocketmq-v5-client-spring-boot/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 0000000..4dd19c2
--- /dev/null
+++ b/rocketmq-v5-client-spring-boot/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+org.apache.rocketmq.client.autoconfigure.RocketMQAutoConfiguration
\ No newline at end of file