All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.arextest.schedule.WebSpringBootServletInitializer Maven / Gradle / Ivy

There is a newer version: 2.0.4
Show newest version
package com.arextest.schedule;

import com.arextest.common.metrics.PrometheusConfiguration;
import jakarta.annotation.PostConstruct;
import java.awt.Desktop;
import java.net.URI;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.BeanCreationException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.retry.annotation.EnableRetry;

/**
 * @author jmo
 * @since 2021/8/18
 */
@Slf4j
@EnableRetry
@SpringBootApplication(scanBasePackages = "com.arextest.schedule", exclude = {
    DataSourceAutoConfiguration.class})
public class WebSpringBootServletInitializer extends SpringBootServletInitializer {

  @Value("${arex.prometheus.port}")
  String prometheusPort;

  public static void main(String[] args) {
    System.setProperty("java.awt.headless", "false");
    try {
      SpringApplication.run(WebSpringBootServletInitializer.class, args);
    } catch (BeanCreationException e) {
      LOGGER.error("Application create error", e);
      System.exit(0);
    }

    try {
      Desktop.getDesktop().browse(new URI("http://localhost:8080/vi/health"));
    } catch (Exception e) {
      LOGGER.error("browse error", e);
    }
  }

  @Override
  protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    return application.sources(WebSpringBootServletInitializer.class);
  }

  @PostConstruct
  public void init() {
    PrometheusConfiguration.initMetrics(prometheusPort);
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy