docs: @IocBean(name = "mqttConnectOptions")
      public MqttConnectOptions createMqttConnectOptions() {
          MqttConnectOptions options = new MqttConnectOptions();
          options.setAutomaticReconnect(conf.getBoolean(PROP_OPTIONS_AUTOMATIC_RECONNECT, true));
          options.setKeepAliveInterval(conf.getInt(PROP_OPTIONS_KEEP_ALIVE_INTERVAL, 60));
          if (!Strings.isBlank(conf.get(PROP_OPTIONS_WILL_TOPIC))) {
              options.setWill(conf.get(PROP_OPTIONS_WILL_TOPIC),
                              conf.get(PROP_OPTIONS_WILL_PAYLOAD).getBytes(),
                              conf.getInt(PROP_OPTIONS_WILL_QOS, 2),
                              conf.getBoolean(PROP_OPTIONS_WILL_RETAINED, true));
          }
          // 用户信息不一定存在,也不一定需要,所以需要判断一下是否真的要设置
          if (!Strings.isBlank(conf.get(PROP_OPTIONS_USERNAME))) {
              options.setUserName(conf.get(PROP_OPTIONS_USERNAME));
          }
          if (!Strings.isBlank(conf.get(PROP_OPTIONS_PASSWORD))) {
              options.setPassword(conf.get(PROP_OPTIONS_PASSWORD).toCharArray());
          }
          options.setCleanSession(conf.getBoolean(PROP_OPTIONS_CLEAN_SESSION, MqttConnectOptions.CLEAN_SESSION_DEFAULT));
          options.setConnectionTimeout(conf.getInt(PROP_OPTIONS_CONNECTION_TIMEOUT, MqttConnectOptions.CONNECTION_TIMEOUT_DEFAULT));
          // 事实上, urls的优先级是高于url的
          if (!Strings.isBlank(conf.get(PROP_OPTIONS_URLS))) {
              options.setServerURIs(Strings.splitIgnoreBlank(conf.get(PROP_OPTIONS_URLS), " "));
          }
          // TODO 完成SSL相关的配置
          return options;
      }