VppUnBootstrapRunner.java 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package com.usky.vpp.job;
  2. import com.usky.vpp.config.VppUnProperties;
  3. import com.usky.vpp.service.VppUnIntegrationService;
  4. import org.slf4j.Logger;
  5. import org.slf4j.LoggerFactory;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.boot.ApplicationArguments;
  8. import org.springframework.boot.ApplicationRunner;
  9. import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
  10. import org.springframework.stereotype.Component;
  11. import org.springframework.util.StringUtils;
  12. /**
  13. * 启动时自动向 UN 注册(可选)
  14. */
  15. @Component
  16. @ConditionalOnProperty(name = "vpp.un.auto-register-on-startup", havingValue = "true")
  17. public class VppUnBootstrapRunner implements ApplicationRunner {
  18. private static final Logger log = LoggerFactory.getLogger(VppUnBootstrapRunner.class);
  19. @Autowired
  20. private VppUnProperties properties;
  21. @Autowired
  22. private VppUnIntegrationService integrationService;
  23. @Override
  24. public void run(ApplicationArguments args) {
  25. if (!properties.isOutboundActive()) {
  26. log.warn("auto-register-on-startup 已开启但 outbound 未激活,跳过");
  27. return;
  28. }
  29. try {
  30. integrationService.refreshToken();
  31. if (!StringUtils.hasText(properties.getRegistrationId())) {
  32. integrationService.register();
  33. log.info("启动注册 UN 完成");
  34. } else {
  35. log.info("已有 registrationID={},跳过启动注册", properties.getRegistrationId());
  36. }
  37. } catch (Exception ex) {
  38. log.warn("启动注册 UN 失败: {}", ex.getMessage());
  39. }
  40. }
  41. }