001package run.iget.framework.common.util;
002
003import org.springframework.boot.SpringApplication;
004import org.springframework.context.ConfigurableApplicationContext;
005import org.springframework.core.env.Environment;
006
007import cn.hutool.core.util.StrUtil;
008import lombok.extern.slf4j.Slf4j;
009
010/**
011 * 代码千万行,注释第一行,注释不规范,迭代两行泪
012 * ---------------类描述-----------------
013 * 统一的应用启动器
014 * ---------------类描述-----------------
015 *
016 * @author 大周
017 * @date 2023/2/17 14:55
018 */
019@Slf4j
020public class SpringBootLauncher {
021
022    /**
023     * 启动
024     *
025     * @param mainClass
026     * @param args
027     * @return
028     */
029    public static ConfigurableApplicationContext run(Class mainClass, String[] args) {
030        ConfigurableApplicationContext applicationContext = SpringApplication.run(mainClass, args);
031        Environment env = applicationContext.getEnvironment();
032        String applicationName = env.getProperty("spring.application.name");
033        if (StrUtil.isBlank(applicationName)) {
034            applicationName = mainClass.getSimpleName();
035        }
036        log.info("----------------------------------------------------------");
037        log.info("Application '{}', at port {} is running!", applicationName, env.getProperty("server.port"));
038        log.info("----------------------------------------------------------");
039
040        return applicationContext;
041    }
042
043}