Commit e361754b authored by liaozan's avatar liaozan 🏀

Polish

parent 0c03802e
package com.schbrain.common.util.support;
import com.schbrain.common.util.ConfigurationPropertiesUtils;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.bind.*;
import org.springframework.boot.context.properties.bind.Bindable;
import org.springframework.boot.context.properties.bind.Binder;
import org.springframework.core.Ordered;
import org.springframework.core.env.ConfigurableEnvironment;
......@@ -11,30 +11,29 @@ import org.springframework.core.env.ConfigurableEnvironment;
* @author liaozan
* @since 2022/1/10
*/
@Data
public abstract class ConfigurableProperties implements Ordered {
public interface ConfigurableProperties extends Ordered {
/**
* get the namespace of remote config
*/
public abstract String getNamespace();
String getNamespace();
/**
* bind properties
*/
public ConfigurableProperties bind(ConfigurableEnvironment environment) {
return Binder.get(environment, bindHandler()).bindOrCreate(getPropertiesPrefix(), Bindable.ofInstance(this));
default ConfigurableProperties bind(ConfigurableEnvironment environment) {
return Binder.get(environment).bindOrCreate(getPropertiesPrefix(), Bindable.ofInstance(this));
}
@Override
public int getOrder() {
default int getOrder() {
return Ordered.LOWEST_PRECEDENCE;
}
/**
* the prefix of properties
*/
protected String getPropertiesPrefix() {
private String getPropertiesPrefix() {
ConfigurationProperties annotation = getClass().getAnnotation(ConfigurationProperties.class);
if (annotation == null) {
String className = ConfigurationProperties.class.getName();
......@@ -44,11 +43,4 @@ public abstract class ConfigurableProperties implements Ordered {
return ConfigurationPropertiesUtils.getPrefix(getClass());
}
/**
* get the {@link org.springframework.boot.context.properties.bind.BindHandler} for bind
*/
protected BindHandler bindHandler() {
return BindHandler.DEFAULT;
}
}
\ No newline at end of file
......@@ -2,7 +2,6 @@ package com.schbrain.common.web.properties;
import com.schbrain.common.util.support.ConfigurableProperties;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.boot.context.properties.ConfigurationProperties;
import java.nio.charset.StandardCharsets;
......@@ -12,9 +11,8 @@ import java.nio.charset.StandardCharsets;
* @since 2022/8/29
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ConfigurationProperties(prefix = "schbrain.web")
public class WebProperties extends ConfigurableProperties {
public class WebProperties implements ConfigurableProperties {
/**
* whether to enable the request logging
......
......@@ -5,8 +5,8 @@ import com.ctrip.framework.apollo.ConfigService;
import com.schbrain.common.util.properties.OrderedMapPropertySource;
import com.schbrain.common.util.support.ConfigurableProperties;
import com.schbrain.framework.autoconfigure.apollo.event.ConcurrentEventMulticaster;
import com.schbrain.framework.autoconfigure.apollo.event.PropertiesPreparedEvent;
import com.schbrain.framework.autoconfigure.apollo.event.listener.PropertiesPreparedEventListener;
import com.schbrain.framework.autoconfigure.apollo.event.ConfigLoadedEvent;
import com.schbrain.framework.autoconfigure.apollo.event.listener.ConfigLoadedEventListener;
import com.schbrain.framework.autoconfigure.apollo.properties.ApolloProperties;
import com.schbrain.framework.autoconfigure.apollo.util.ConfigUtils;
import org.apache.commons.collections4.CollectionUtils;
......@@ -79,16 +79,16 @@ class ConfigurablePropertiesLoader {
});
}
private PropertiesPreparedEvent createEvent(ConfigurableEnvironment environment, SpringApplication application,
OrderedMapPropertySource propertySource, ConfigurableProperties properties) {
private ConfigLoadedEvent createEvent(ConfigurableEnvironment environment, SpringApplication application,
OrderedMapPropertySource propertySource, ConfigurableProperties properties) {
ConfigurableProperties boundProperties = properties.bind(environment);
return new PropertiesPreparedEvent(environment, deferredLogFactory, propertySource, boundProperties, application);
return new ConfigLoadedEvent(environment, deferredLogFactory, propertySource, boundProperties, application);
}
private ConcurrentEventMulticaster createEventMulticaster(Set<ApplicationListener<?>> listeners) {
ConcurrentEventMulticaster eventMulticaster = new ConcurrentEventMulticaster();
for (ApplicationListener<?> listener : listeners) {
if (ClassUtils.isAssignableValue(PropertiesPreparedEventListener.class, listener)) {
if (ClassUtils.isAssignableValue(ConfigLoadedEventListener.class, listener)) {
eventMulticaster.addApplicationListener(listener);
}
}
......
......@@ -13,7 +13,7 @@ import org.springframework.core.env.ConfigurableEnvironment;
* @since 2023-04-28
*/
@Getter
public class PropertiesPreparedEvent extends ApplicationEvent {
public class ConfigLoadedEvent extends ApplicationEvent {
private static final long serialVersionUID = 2567291189881702459L;
......@@ -25,11 +25,11 @@ public class PropertiesPreparedEvent extends ApplicationEvent {
private final SpringApplication springApplication;
public PropertiesPreparedEvent(ConfigurableEnvironment environment,
DeferredLogFactory deferredLogFactory,
OrderedMapPropertySource propertySource,
ConfigurableProperties properties,
SpringApplication springApplication) {
public ConfigLoadedEvent(ConfigurableEnvironment environment,
DeferredLogFactory deferredLogFactory,
OrderedMapPropertySource propertySource,
ConfigurableProperties properties,
SpringApplication springApplication) {
super(properties);
this.environment = environment;
this.propertySource = propertySource;
......
package com.schbrain.framework.autoconfigure.apollo.event.listener;
import com.schbrain.framework.autoconfigure.apollo.event.PropertiesPreparedEvent;
import com.schbrain.framework.autoconfigure.apollo.event.ConfigLoadedEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.core.Ordered;
......@@ -8,7 +8,7 @@ import org.springframework.core.Ordered;
* @author liaozan
* @since 2023-04-29
*/
public interface PropertiesPreparedEventListener extends ApplicationListener<PropertiesPreparedEvent>, Ordered {
public interface ConfigLoadedEventListener extends ApplicationListener<ConfigLoadedEvent>, Ordered {
@Override
default int getOrder() {
......
package com.schbrain.framework.autoconfigure.apollo.event.listener;
import com.schbrain.common.util.support.ConfigurableProperties;
import com.schbrain.framework.autoconfigure.apollo.event.PropertiesPreparedEvent;
import com.schbrain.framework.autoconfigure.apollo.event.ConfigLoadedEvent;
import org.apache.commons.logging.Log;
import org.springframework.core.ResolvableType;
......@@ -10,24 +10,24 @@ import org.springframework.core.ResolvableType;
* @since 2023-04-28
*/
@SuppressWarnings("unchecked")
public abstract class GenericPropertiesPreparedEventListener<T extends ConfigurableProperties> implements PropertiesPreparedEventListener {
public abstract class GenericConfigLoadedEventListener<T extends ConfigurableProperties> implements ConfigLoadedEventListener {
protected final ResolvableType propertiesType;
protected Log log;
public GenericPropertiesPreparedEventListener() {
public GenericConfigLoadedEventListener() {
this.propertiesType = ResolvableType.forInstance(this).getSuperType().getGeneric(0);
}
@Override
public void onApplicationEvent(PropertiesPreparedEvent event) {
public void onApplicationEvent(ConfigLoadedEvent event) {
if (propertiesType.isInstance(event.getConfigurableProperties())) {
this.log = event.getDeferredLogFactory().getLog(getClass());
this.onPropertiesPrepared(event, (T) event.getConfigurableProperties());
this.onConfigLoaded(event, (T) event.getConfigurableProperties());
}
}
protected abstract void onPropertiesPrepared(PropertiesPreparedEvent event, T configurableProperties);
protected abstract void onConfigLoaded(ConfigLoadedEvent event, T configurableProperties);
}
\ No newline at end of file
......@@ -2,7 +2,6 @@ package com.schbrain.framework.autoconfigure.cache.properties;
import com.schbrain.common.util.support.ConfigurableProperties;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
......@@ -10,9 +9,8 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
* @since 2022/7/26
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ConfigurationProperties(prefix = "schbrain.cache")
public class CacheProperties extends ConfigurableProperties {
public class CacheProperties implements ConfigurableProperties {
/**
* cache prefix
......
......@@ -2,7 +2,6 @@ package com.schbrain.framework.autoconfigure.cache.provider.redis;
import com.schbrain.common.util.support.ConfigurableProperties;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
......@@ -10,9 +9,8 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
* @since 2023-04-27
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ConfigurationProperties(prefix = "spring.redis")
public class RedisProperties extends ConfigurableProperties {
public class RedisProperties implements ConfigurableProperties {
@Override
public String getNamespace() {
......
......@@ -3,8 +3,8 @@ package com.schbrain.framework.autoconfigure.dubbo.listener;
import com.alibaba.fastjson2.JSONFactory;
import com.schbrain.common.util.ApplicationName;
import com.schbrain.common.util.properties.OrderedMapPropertySource;
import com.schbrain.framework.autoconfigure.apollo.event.PropertiesPreparedEvent;
import com.schbrain.framework.autoconfigure.apollo.event.listener.GenericPropertiesPreparedEventListener;
import com.schbrain.framework.autoconfigure.apollo.event.ConfigLoadedEvent;
import com.schbrain.framework.autoconfigure.apollo.event.listener.GenericConfigLoadedEventListener;
import com.schbrain.framework.autoconfigure.dubbo.properties.DubboProperties;
import org.springframework.boot.SpringApplication;
import org.springframework.context.ApplicationContextInitializer;
......@@ -18,7 +18,7 @@ import static org.apache.dubbo.config.ConfigKeys.DUBBO_SCAN_BASE_PACKAGES;
* @author liaozan
* @since 2023-04-28
*/
public class DubboPropertiesPreparedEventListener extends GenericPropertiesPreparedEventListener<DubboProperties> implements ApplicationContextInitializer<ConfigurableApplicationContext> {
public class DubboConfigLoadedEventListener extends GenericConfigLoadedEventListener<DubboProperties> implements ApplicationContextInitializer<ConfigurableApplicationContext> {
public static final String DUBBO_APPLICATION_NAME = "dubbo.application.name";
......@@ -33,7 +33,7 @@ public class DubboPropertiesPreparedEventListener extends GenericPropertiesPrepa
}
@Override
protected void onPropertiesPrepared(PropertiesPreparedEvent event, DubboProperties properties) {
protected void onConfigLoaded(ConfigLoadedEvent event, DubboProperties properties) {
event.getSpringApplication().addInitializers(this);
setRequiredProperties(event.getEnvironment(), event.getSpringApplication(), event.getPropertySource());
JSONFactory.setUseJacksonAnnotation(false);
......
......@@ -2,7 +2,6 @@ package com.schbrain.framework.autoconfigure.dubbo.properties;
import com.schbrain.common.util.support.ConfigurableProperties;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.dubbo.config.*;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.context.properties.ConfigurationProperties;
......@@ -18,9 +17,8 @@ import java.util.Set;
* @since 2021/12/6
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ConfigurationProperties(prefix = "dubbo")
public class DubboProperties extends ConfigurableProperties {
public class DubboProperties implements ConfigurableProperties {
@NestedConfigurationProperty
private Scan scan = new Scan();
......
com.schbrain.common.util.support.ConfigurableProperties=\
com.schbrain.framework.autoconfigure.dubbo.properties.DubboProperties
org.springframework.context.ApplicationListener=\
com.schbrain.framework.autoconfigure.dubbo.listener.DubboPropertiesPreparedEventListener
\ No newline at end of file
com.schbrain.framework.autoconfigure.dubbo.listener.DubboConfigLoadedEventListener
\ No newline at end of file
......@@ -2,7 +2,6 @@ package com.schbrain.framework.autoconfigure.elasticsearch.properties;
import com.schbrain.common.util.support.ConfigurableProperties;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
......@@ -10,9 +9,8 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
* @since 2023-04-29
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ConfigurationProperties(prefix = "spring.elasticsearch")
public class ElasticsearchProperties extends ConfigurableProperties {
public class ElasticsearchProperties implements ConfigurableProperties {
@Override
public String getNamespace() {
......
......@@ -2,7 +2,6 @@ package com.schbrain.framework.autoconfigure.kafka.properties;
import com.schbrain.common.util.support.ConfigurableProperties;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
......@@ -10,9 +9,8 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
* @since 2023-04-29
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ConfigurationProperties(prefix = "spring.kafka")
public class KafkaProperties extends ConfigurableProperties {
public class KafkaProperties implements ConfigurableProperties {
@Override
public String getNamespace() {
......
......@@ -8,8 +8,8 @@ import com.ctrip.framework.apollo.core.enums.ConfigFileFormat;
import com.google.common.collect.Maps;
import com.schbrain.common.util.InetUtils;
import com.schbrain.common.util.InetUtils.HostInfo;
import com.schbrain.framework.autoconfigure.apollo.event.PropertiesPreparedEvent;
import com.schbrain.framework.autoconfigure.apollo.event.listener.GenericPropertiesPreparedEventListener;
import com.schbrain.framework.autoconfigure.apollo.event.ConfigLoadedEvent;
import com.schbrain.framework.autoconfigure.apollo.event.listener.GenericConfigLoadedEventListener;
import com.schbrain.framework.autoconfigure.logger.LoggerConfigurationInitializer;
import com.schbrain.framework.autoconfigure.logger.properties.LoggerProperties;
import org.springframework.core.env.ConfigurableEnvironment;
......@@ -25,10 +25,10 @@ import static org.springframework.boot.context.logging.LoggingApplicationListene
* @author liaozan
* @since 2023-04-28
*/
public class LoggerPropertiesPreparedEventListener extends GenericPropertiesPreparedEventListener<LoggerProperties> {
public class LoggerConfigLoadedEventListener extends GenericConfigLoadedEventListener<LoggerProperties> {
@Override
protected void onPropertiesPrepared(PropertiesPreparedEvent event, LoggerProperties properties) {
protected void onConfigLoaded(ConfigLoadedEvent event, LoggerProperties properties) {
ConfigurableEnvironment environment = event.getEnvironment();
HostInfo hostInfo = InetUtils.findFirstNonLoopBackHostInfo();
Map<String, String> hostInfoProperties = buildHostInfoProperties(hostInfo);
......
......@@ -2,7 +2,6 @@ package com.schbrain.framework.autoconfigure.logger.properties;
import com.schbrain.common.util.support.ConfigurableProperties;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.core.PriorityOrdered;
......@@ -13,9 +12,8 @@ import java.time.Duration;
* @since 2021/12/11
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ConfigurationProperties(prefix = "schbrain.logging.file")
public class LoggerProperties extends ConfigurableProperties implements PriorityOrdered {
public class LoggerProperties implements ConfigurableProperties, PriorityOrdered {
public static final String DEFAULT_LOG_PATH = "/data/logs";
......
org.springframework.context.ApplicationContextInitializer=\
com.schbrain.framework.autoconfigure.logger.logback.LogbackTraceIdConfiguration
org.springframework.context.ApplicationListener=\
com.schbrain.framework.autoconfigure.logger.listener.LoggerPropertiesPreparedEventListener
com.schbrain.framework.autoconfigure.logger.listener.LoggerConfigLoadedEventListener
com.schbrain.common.util.support.ConfigurableProperties=\
com.schbrain.framework.autoconfigure.logger.properties.LoggerProperties
\ No newline at end of file
......@@ -2,7 +2,6 @@ package com.schbrain.framework.autoconfigure.mybatis.properties;
import com.schbrain.common.util.support.ConfigurableProperties;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
......@@ -10,9 +9,8 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
* @since 2023-04-27
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ConfigurationProperties(prefix = "spring.datasource")
public class DataSourceProperties extends ConfigurableProperties {
public class DataSourceProperties implements ConfigurableProperties {
@Override
public String getNamespace() {
......
......@@ -2,7 +2,6 @@ package com.schbrain.framework.autoconfigure.mybatis.properties;
import com.schbrain.common.util.support.ConfigurableProperties;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
......@@ -10,9 +9,8 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
* @since 2021/11/23
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ConfigurationProperties(prefix = "schbrain.mybatis")
public class MybatisProperties extends ConfigurableProperties {
public class MybatisProperties implements ConfigurableProperties {
/**
* 分页拦截器
......
......@@ -2,7 +2,6 @@ package com.schbrain.framework.autoconfigure.oss.properties;
import com.schbrain.common.util.support.ConfigurableProperties;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;
......@@ -11,9 +10,8 @@ import org.springframework.boot.context.properties.NestedConfigurationProperty;
* @since 2021/12/3
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ConfigurationProperties(prefix = "schbrain.oss")
public class OssProperties extends ConfigurableProperties {
public class OssProperties implements ConfigurableProperties {
private String accessKeyId;
......
......@@ -3,7 +3,6 @@ package com.schbrain.framework.autoconfigure.xxl.properties;
import com.schbrain.common.util.InetUtils;
import com.schbrain.common.util.support.ConfigurableProperties;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
......@@ -11,9 +10,8 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
* @since 2022/1/8
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ConfigurationProperties(prefix = "schbrain.xxl")
public class XxlJobProperties extends ConfigurableProperties {
public class XxlJobProperties implements ConfigurableProperties {
private String adminAddresses;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment