diff --git a/common/src/main/java/io/dynamic/threadpool/common/config/CommonConfiguration.java b/common/src/main/java/io/dynamic/threadpool/common/config/CommonConfiguration.java index 39a11f50..41e8e9db 100644 --- a/common/src/main/java/io/dynamic/threadpool/common/config/CommonConfiguration.java +++ b/common/src/main/java/io/dynamic/threadpool/common/config/CommonConfiguration.java @@ -13,7 +13,7 @@ import org.springframework.context.annotation.Configuration; public class CommonConfiguration { @Bean - public ApplicationContextHolder applicationContextHolder() { + public ApplicationContextHolder simpleApplicationContextHolder() { return new ApplicationContextHolder(); } diff --git a/dynamic-threadpool-spring-boot-starter/pom.xml b/dynamic-threadpool-spring-boot-starter/pom.xml index c5e32a85..83c7b862 100644 --- a/dynamic-threadpool-spring-boot-starter/pom.xml +++ b/dynamic-threadpool-spring-boot-starter/pom.xml @@ -51,4 +51,24 @@ true + + + + + org.apache.maven.plugins + maven-jar-plugin + + + + ${project.artifactId} + ${project.version} + ${maven.build.timestamp} + chen.ma + + + + + + + diff --git a/dynamic-threadpool-spring-boot-starter/src/main/java/io/dynamic/threadpool/starter/core/DynamicThreadPoolBanner.java b/dynamic-threadpool-spring-boot-starter/src/main/java/io/dynamic/threadpool/starter/core/DynamicThreadPoolBanner.java new file mode 100644 index 00000000..1a1e78f7 --- /dev/null +++ b/dynamic-threadpool-spring-boot-starter/src/main/java/io/dynamic/threadpool/starter/core/DynamicThreadPoolBanner.java @@ -0,0 +1,43 @@ +package io.dynamic.threadpool.starter.core; + +import org.springframework.boot.ansi.AnsiColor; +import org.springframework.boot.ansi.AnsiOutput; +import org.springframework.boot.ansi.AnsiStyle; + +/** + * 动态线程池 Banner + * + * @author chen.ma + * @date 2021/7/4 15:58 + */ +public class DynamicThreadPoolBanner { + + private static final String DYNAMIC_THREAD_POOL = " :: Dynamic ThreadPool :: "; + + private static final int STRAP_LINE_SIZE = 42; + + public static void printBanner() { + String banner = "\n___ _ _____ ___ \n" + + "| \\ _ _ _ _ __ _ _ __ (_)__ |_ _| _ \\\n" + + "| |) | || | ' \\/ _` | ' \\| / _| | | | _/\n" + + "|___/ \\_, |_||_\\__,_|_|_|_|_\\__| |_| |_| \n" + + " |__/ \n"; + + String version = getVersion(); + version = (version != null) ? " (v" + version + ")" : "no version."; + + StringBuilder padding = new StringBuilder(); + while (padding.length() < STRAP_LINE_SIZE - (version.length() + DYNAMIC_THREAD_POOL.length())) { + padding.append(" "); + } + + System.out.println(AnsiOutput.toString(banner, AnsiColor.GREEN, DYNAMIC_THREAD_POOL, AnsiColor.DEFAULT, + padding.toString(), AnsiStyle.FAINT, version, "\n")); + } + + public static String getVersion() { + final Package pkg = DynamicThreadPoolBanner.class.getPackage(); + return pkg != null ? pkg.getImplementationVersion() : ""; + } + +} diff --git a/dynamic-threadpool-spring-boot-starter/src/main/java/io/dynamic/threadpool/starter/listener/ThreadPoolRunListener.java b/dynamic-threadpool-spring-boot-starter/src/main/java/io/dynamic/threadpool/starter/listener/ThreadPoolRunListener.java index 5fb8a2b4..103234d9 100644 --- a/dynamic-threadpool-spring-boot-starter/src/main/java/io/dynamic/threadpool/starter/listener/ThreadPoolRunListener.java +++ b/dynamic-threadpool-spring-boot-starter/src/main/java/io/dynamic/threadpool/starter/listener/ThreadPoolRunListener.java @@ -1,17 +1,18 @@ package io.dynamic.threadpool.starter.listener; import com.alibaba.fastjson.JSON; -import io.dynamic.threadpool.starter.common.CommonThreadPool; -import io.dynamic.threadpool.common.constant.Constants; import io.dynamic.threadpool.common.config.ApplicationContextHolder; +import io.dynamic.threadpool.common.constant.Constants; +import io.dynamic.threadpool.common.model.PoolParameterInfo; +import io.dynamic.threadpool.common.web.base.Result; +import io.dynamic.threadpool.starter.common.CommonThreadPool; import io.dynamic.threadpool.starter.config.DynamicThreadPoolProperties; +import io.dynamic.threadpool.starter.core.DynamicThreadPoolBanner; import io.dynamic.threadpool.starter.core.GlobalThreadPoolManage; import io.dynamic.threadpool.starter.remote.HttpAgent; import io.dynamic.threadpool.starter.remote.ServerHttpAgent; import io.dynamic.threadpool.starter.toolkit.BlockingQueueUtil; import io.dynamic.threadpool.starter.wrap.DynamicThreadPoolWrap; -import io.dynamic.threadpool.common.model.PoolParameterInfo; -import io.dynamic.threadpool.common.web.base.Result; import org.springframework.core.annotation.Order; import javax.annotation.PostConstruct; @@ -38,6 +39,8 @@ public class ThreadPoolRunListener { @Order(1024) @PostConstruct public void run() { + DynamicThreadPoolBanner.printBanner(); + Map executorMap = ApplicationContextHolder.getBeansOfType(DynamicThreadPoolWrap.class); @@ -63,5 +66,4 @@ public class ThreadPoolRunListener { GlobalThreadPoolManage.register(val.getTpId(), ppi, val); }); } - }