通过配置文件设置是否启用动态线程池功能. (#43)

pull/84/head
chen.ma 3 years ago
parent 2177b9cb27
commit 68fe059961

@ -19,3 +19,4 @@ spring:
item-id: dynamic-threadpool-example
username: admin
password: 123456
enable: true

@ -44,6 +44,11 @@ public class BootstrapProperties {
*/
private String itemId;
/**
* Whether to enable dynamic thread pool
*/
private Boolean enable = true;
/**
* Print dynamic thread pool banner
*/

@ -23,6 +23,7 @@ import cn.hutool.core.util.IdUtil;
import lombok.AllArgsConstructor;
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -40,6 +41,7 @@ import org.springframework.core.env.ConfigurableEnvironment;
@AllArgsConstructor
@ConditionalOnBean(MarkerConfiguration.Marker.class)
@EnableConfigurationProperties(BootstrapProperties.class)
@ConditionalOnProperty(prefix = BootstrapProperties.PREFIX, value = "enable", matchIfMissing = true, havingValue = "true")
@ImportAutoConfiguration({HttpClientConfig.class, DiscoveryConfig.class, MessageAlarmConfig.class, UtilAutoConfiguration.class})
public class DynamicThreadPoolAutoConfiguration {

@ -4,6 +4,7 @@ import cn.hippo4j.starter.config.BootstrapProperties;
import cn.hippo4j.starter.core.ConfigEmptyException;
import cn.hutool.core.util.StrUtil;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.ConfigurableEnvironment;
@ -19,7 +20,9 @@ import org.springframework.core.env.ConfigurableEnvironment;
public class BeforeCheckConfiguration {
@Bean
public BeforeCheckConfiguration.BeforeCheck dynamicThreadPoolBeforeCheckBean(BootstrapProperties properties, ConfigurableEnvironment environment) {
public BeforeCheckConfiguration.BeforeCheck dynamicThreadPoolBeforeCheckBean(@Autowired(required = false) BootstrapProperties properties,
ConfigurableEnvironment environment) {
if (properties != null) {
String username = properties.getUsername();
if (StrUtil.isBlank(username)) {
throw new ConfigEmptyException(
@ -67,6 +70,7 @@ public class BeforeCheckConfiguration {
"Please check whether the [spring.application.name] configuration is empty or an empty string."
);
}
}
return new BeforeCheckConfiguration.BeforeCheck();
}

Loading…
Cancel
Save