composite-build-usage-example
61 строка · 2.1 Кб
1package by.andd3dfx.templateapp.util;2
3import lombok.AccessLevel;4import lombok.NoArgsConstructor;5import lombok.extern.slf4j.Slf4j;6import org.apache.commons.lang3.StringUtils;7import org.springframework.core.env.Environment;8
9import java.net.InetAddress;10import java.net.UnknownHostException;11
12/**
13* Use next syntax for your main class:
14* <pre>
15* public static void main(String[] args) {
16* Environment env = new SpringApplication(MainApplication.class)
17* .run(args)
18* .getEnvironment();
19* StartupHelper.logApplicationStartup(env);
20* }
21* <pre/>
22*/
23@Slf4j
24@NoArgsConstructor(access = AccessLevel.PRIVATE)25public final class StartupHelper {26
27public static void logApplicationStartup(Environment env) {28String protocol = "http";29if (env.getProperty("server.ssl.key-store") != null) {30protocol = "https";31}32
33String serverPort = env.getProperty("server.port");34String contextPath = env.getProperty("server.servlet.context-path");35if (StringUtils.isBlank(contextPath)) {36contextPath = "/";37}38
39String hostAddress = "localhost";40try {41hostAddress = InetAddress.getLocalHost().getHostAddress();42} catch (UnknownHostException e) {43log.warn("The host name could not be determined, using `localhost` as fallback");44}45
46log.info("\n----------------------------------------------------------\n\t"47+ "Application '{}' is running! Access URLs:\n\t"48+ "Local: \t\t{}://localhost:{}{}\n\t"49+ "External: \t{}://{}:{}{}\n\t"50+ "Profile(s): \t{}\n----------------------------------------------------------",51env.getProperty("spring.application.name"),52protocol,53serverPort,54contextPath,55protocol,56hostAddress,57serverPort,58contextPath,59env.getActiveProfiles());60}61}
62