From e54448edc55ba69bed151596a9e5b4bbc64bb04d Mon Sep 17 00:00:00 2001 From: liaozan <378024053@qq.com> Date: Thu, 4 May 2023 18:35:52 +0800 Subject: [PATCH] Refactor --- .../schbrain/common/util/ApplicationName.java | 14 +++++- ...rce.java => OrderedMapPropertySource.java} | 6 +-- .../util/support/delay/DelayedQueueUtils.java | 3 +- .../util/support/lock/RedisLockUtils.java | 3 +- .../common/exception/BaseException.java | 4 +- .../DefaultGlobalExceptionHandler.java | 8 ++++ .../support/concurrent/RateLimitAspect.java | 5 +- ...nInitializerEnvironmentPostProcessor.java} | 48 ++++++++++++------- .../apollo/ConfigurablePropertiesLoader.java | 4 +- .../listener/PropertiesPreparedEvent.java | 6 +-- .../apollo/util/ConfigUtils.java | 8 ++-- .../main/resources/META-INF/spring.factories | 2 +- .../mybatis/base/BaseServiceImpl.java | 3 ++ .../mybatis/biz/BizIdInjectInterceptor.java | 7 +-- .../oss/OssAutoConfiguration.java | 7 +-- .../autoconfigure/oss/util/OssUtils.java | 5 +- starters/pom.xml | 1 - .../xxl/XxlJobAutoConfiguration.java | 8 +--- ...onmentPostProcessorLoggerAwareAdapter.java | 26 ---------- .../LoggerAwareEnvironmentPostProcessor.java | 33 +++++++++++++ ...ultPropertiesEnvironmentPostProcessor.java | 10 ++-- 21 files changed, 121 insertions(+), 90 deletions(-) rename commons/common-util/src/main/java/com/schbrain/common/util/properties/{SchbrainMapPropertySource.java => OrderedMapPropertySource.java} (66%) rename starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/{ApolloConfigurationInitializer.java => ApolloConfigurationInitializerEnvironmentPostProcessor.java} (71%) delete mode 100644 support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/EnvironmentPostProcessorLoggerAwareAdapter.java create mode 100644 support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/LoggerAwareEnvironmentPostProcessor.java diff --git a/commons/common-util/src/main/java/com/schbrain/common/util/ApplicationName.java b/commons/common-util/src/main/java/com/schbrain/common/util/ApplicationName.java index e4ec354..4c98211 100644 --- a/commons/common-util/src/main/java/com/schbrain/common/util/ApplicationName.java +++ b/commons/common-util/src/main/java/com/schbrain/common/util/ApplicationName.java @@ -1,6 +1,11 @@ package com.schbrain.common.util; +import cn.hutool.extra.spring.SpringUtil; +import com.schbrain.common.exception.BaseException; import org.springframework.core.env.Environment; +import org.springframework.core.env.EnvironmentCapable; + +import java.util.Optional; /** * @author liaozan @@ -8,8 +13,15 @@ import org.springframework.core.env.Environment; */ public class ApplicationName { + public static String get() { + return Optional.ofNullable(SpringUtil.getApplicationContext()) + .map(EnvironmentCapable::getEnvironment) + .map(ApplicationName::get) + .orElseThrow(() -> new BaseException("Could not get application name")); + } + public static String get(Environment environment) { return environment.getRequiredProperty("spring.application.name"); } -} +} \ No newline at end of file diff --git a/commons/common-util/src/main/java/com/schbrain/common/util/properties/SchbrainMapPropertySource.java b/commons/common-util/src/main/java/com/schbrain/common/util/properties/OrderedMapPropertySource.java similarity index 66% rename from commons/common-util/src/main/java/com/schbrain/common/util/properties/SchbrainMapPropertySource.java rename to commons/common-util/src/main/java/com/schbrain/common/util/properties/OrderedMapPropertySource.java index 072c252..7ba8245 100644 --- a/commons/common-util/src/main/java/com/schbrain/common/util/properties/SchbrainMapPropertySource.java +++ b/commons/common-util/src/main/java/com/schbrain/common/util/properties/OrderedMapPropertySource.java @@ -6,14 +6,14 @@ import java.util.LinkedHashMap; import java.util.Map; /** - * mark class to ensure property order + * ordered property source * * @author liaozan * @since 2021/12/6 */ -public class SchbrainMapPropertySource extends MapPropertySource { +public class OrderedMapPropertySource extends MapPropertySource { - public SchbrainMapPropertySource(String name, Map source) { + public OrderedMapPropertySource(String name, Map source) { super(name, new LinkedHashMap<>(source)); } diff --git a/commons/common-util/src/main/java/com/schbrain/common/util/support/delay/DelayedQueueUtils.java b/commons/common-util/src/main/java/com/schbrain/common/util/support/delay/DelayedQueueUtils.java index 01b9645..2d0a6b0 100644 --- a/commons/common-util/src/main/java/com/schbrain/common/util/support/delay/DelayedQueueUtils.java +++ b/commons/common-util/src/main/java/com/schbrain/common/util/support/delay/DelayedQueueUtils.java @@ -6,7 +6,6 @@ import com.schbrain.common.exception.BaseException; import com.schbrain.common.util.ApplicationName; import org.redisson.api.*; import org.springframework.beans.BeansException; -import org.springframework.core.env.Environment; import org.springframework.util.CollectionUtils; import java.util.List; @@ -19,7 +18,7 @@ import java.util.concurrent.TimeUnit; */ public class DelayedQueueUtils { - private static final String APPLICATION_NAME = ApplicationName.get(SpringUtil.getBean(Environment.class)); + private static final String APPLICATION_NAME = ApplicationName.get(); private static final ConcurrentHashMap> blockingQueueCache = new ConcurrentHashMap<>(); diff --git a/commons/common-util/src/main/java/com/schbrain/common/util/support/lock/RedisLockUtils.java b/commons/common-util/src/main/java/com/schbrain/common/util/support/lock/RedisLockUtils.java index 8c98267..81d140d 100644 --- a/commons/common-util/src/main/java/com/schbrain/common/util/support/lock/RedisLockUtils.java +++ b/commons/common-util/src/main/java/com/schbrain/common/util/support/lock/RedisLockUtils.java @@ -8,7 +8,6 @@ import lombok.extern.slf4j.Slf4j; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.beans.BeansException; -import org.springframework.core.env.Environment; import java.time.Duration; import java.util.concurrent.Callable; @@ -21,7 +20,7 @@ import java.util.concurrent.TimeUnit; @Slf4j public class RedisLockUtils { - private static final String APPLICATION_NAME = ApplicationName.get(SpringUtil.getBean(Environment.class)); + private static final String APPLICATION_NAME = ApplicationName.get(); private static RedissonClient CLIENT; diff --git a/commons/common/src/main/java/com/schbrain/common/exception/BaseException.java b/commons/common/src/main/java/com/schbrain/common/exception/BaseException.java index 4692ef7..6a7bb59 100644 --- a/commons/common/src/main/java/com/schbrain/common/exception/BaseException.java +++ b/commons/common/src/main/java/com/schbrain/common/exception/BaseException.java @@ -24,8 +24,8 @@ public class BaseException extends RuntimeException { this(message, null); } - public BaseException(String message, Throwable throwable) { - this(message, throwable, SERVER_ERROR, ALERT); + public BaseException(String message, Throwable cause) { + this(message, cause, SERVER_ERROR, ALERT); } public BaseException(String message, int code, int action) { diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/exception/DefaultGlobalExceptionHandler.java b/commons/web-common/src/main/java/com/schbrain/common/web/exception/DefaultGlobalExceptionHandler.java index 7fe1121..9967a99 100644 --- a/commons/web-common/src/main/java/com/schbrain/common/web/exception/DefaultGlobalExceptionHandler.java +++ b/commons/web-common/src/main/java/com/schbrain/common/web/exception/DefaultGlobalExceptionHandler.java @@ -242,7 +242,15 @@ public class DefaultGlobalExceptionHandler implements GlobalExceptionHandler { protected void logError(Throwable throwable) { String exMsg = ExceptionUtil.getMessage(throwable); + if (hasCause(throwable)) { + exMsg = exMsg + ", " + ExceptionUtil.getRootCauseMessage(throwable); + throwable = ExceptionUtil.getRootCause(throwable); + } log.error(exMsg, throwable); } + private boolean hasCause(Throwable throwable) { + return throwable.getCause() != null; + } + } \ No newline at end of file diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/support/concurrent/RateLimitAspect.java b/commons/web-common/src/main/java/com/schbrain/common/web/support/concurrent/RateLimitAspect.java index e3c9ef8..6763c4a 100644 --- a/commons/web-common/src/main/java/com/schbrain/common/web/support/concurrent/RateLimitAspect.java +++ b/commons/web-common/src/main/java/com/schbrain/common/web/support/concurrent/RateLimitAspect.java @@ -13,7 +13,6 @@ import org.aspectj.lang.reflect.MethodSignature; import org.springframework.beans.BeanUtils; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.core.env.Environment; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.BoundValueOperations; import org.springframework.data.redis.core.StringRedisTemplate; @@ -39,8 +38,8 @@ public class RateLimitAspect { private final StringRedisTemplate stringRedisTemplate; - public RateLimitAspect(Environment environment, StringRedisTemplate stringRedisTemplate) { - this.keyPrefix = ApplicationName.get(environment); + public RateLimitAspect(StringRedisTemplate stringRedisTemplate) { + this.keyPrefix = ApplicationName.get(); this.stringRedisTemplate = stringRedisTemplate; } diff --git a/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ApolloConfigurationInitializer.java b/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ApolloConfigurationInitializerEnvironmentPostProcessor.java similarity index 71% rename from starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ApolloConfigurationInitializer.java rename to starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ApolloConfigurationInitializerEnvironmentPostProcessor.java index a9ed194..764ea03 100644 --- a/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ApolloConfigurationInitializer.java +++ b/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ApolloConfigurationInitializerEnvironmentPostProcessor.java @@ -3,7 +3,7 @@ package com.schbrain.framework.autoconfigure.apollo; import com.ctrip.framework.foundation.Foundation; import com.schbrain.common.util.ApplicationName; import com.schbrain.common.util.EnvUtils; -import com.schbrain.framework.support.spring.EnvironmentPostProcessorLoggerAwareAdapter; +import com.schbrain.framework.support.spring.LoggerAwareEnvironmentPostProcessor; import com.schbrain.framework.support.spring.defaults.DefaultPropertiesEnvironmentPostProcessor; import org.springframework.boot.ConfigurableBootstrapContext; import org.springframework.boot.SpringApplication; @@ -23,7 +23,7 @@ import static com.ctrip.framework.apollo.spring.config.PropertySourcesConstants. * @author liaozan * @since 2021/11/6 */ -public class ApolloConfigurationInitializer extends EnvironmentPostProcessorLoggerAwareAdapter implements Ordered { +public class ApolloConfigurationInitializerEnvironmentPostProcessor extends LoggerAwareEnvironmentPostProcessor implements Ordered { /** * load properties after set the default properties @@ -36,9 +36,9 @@ public class ApolloConfigurationInitializer extends EnvironmentPostProcessorLogg private final ConfigurablePropertiesLoader configurablePropertiesLoader; - public ApolloConfigurationInitializer(DeferredLogFactory deferredLogFactory, ConfigurableBootstrapContext bootstrapContext) { + public ApolloConfigurationInitializerEnvironmentPostProcessor(DeferredLogFactory deferredLogFactory, ConfigurableBootstrapContext bootstrapContext) { super(deferredLogFactory, bootstrapContext); - this.configurablePropertiesLoader = new ConfigurablePropertiesLoader(getDeferredLogFactory()); + this.configurablePropertiesLoader = new ConfigurablePropertiesLoader(deferredLogFactory); } @Override @@ -63,26 +63,26 @@ public class ApolloConfigurationInitializer extends EnvironmentPostProcessorLogg private void setRequiredProperty(ConfigurableEnvironment environment) { String appId = getAppId(environment); - saveProperty(APP_ID, appId); + setPropertyToSystem(APP_ID, appId); String env = getEnv(environment); - saveProperty(ENV_KEY, env); + setPropertyToSystem(ENV_KEY, env); - String apolloUrl = getApolloUrl(environment, env); - saveProperty(APOLLO_META, apolloUrl); + String metaServerUrl = getApolloMetaServerUrl(environment, env); + setPropertyToSystem(APOLLO_META, metaServerUrl); - saveProperty(APOLLO_BOOTSTRAP_EAGER_LOAD_ENABLED, true); - saveProperty(APOLLO_BOOTSTRAP_ENABLED, true); - saveProperty(APOLLO_CACHE_FILE_ENABLE, true); - saveProperty(APOLLO_PROPERTY_ORDER_ENABLE, true); + setPropertyToSystem(APOLLO_BOOTSTRAP_EAGER_LOAD_ENABLED, true); + setPropertyToSystem(APOLLO_BOOTSTRAP_ENABLED, true); + setPropertyToSystem(APOLLO_CACHE_FILE_ENABLE, true); + setPropertyToSystem(APOLLO_PROPERTY_ORDER_ENABLE, true); // DO NOT set to true. After caching the property name, SpringBoot may not be able to bind the properties - saveProperty(APOLLO_PROPERTY_NAMES_CACHE_ENABLE, false); - saveProperty(APOLLO_OVERRIDE_SYSTEM_PROPERTIES, false); + setPropertyToSystem(APOLLO_PROPERTY_NAMES_CACHE_ENABLE, false); + setPropertyToSystem(APOLLO_OVERRIDE_SYSTEM_PROPERTIES, false); printProperties(); } - private void saveProperty(String key, Object value) { + private void setPropertyToSystem(String key, Object value) { INIT_PROPERTIES.put(key, value); System.setProperty(key, value.toString()); } @@ -97,7 +97,12 @@ public class ApolloConfigurationInitializer extends EnvironmentPostProcessorLogg System.out.println(message); } - private String getApolloUrl(ConfigurableEnvironment environment, String env) { + /** + * get apollo meta server url + * + * @see com.ctrip.framework.foundation.internals.provider.DefaultApplicationProvider#getProperty(String, String) + */ + private String getApolloMetaServerUrl(ConfigurableEnvironment environment, String env) { String fallbackKey = env + ".meta"; // {env}.meta @@ -125,6 +130,11 @@ public class ApolloConfigurationInitializer extends EnvironmentPostProcessorLogg return Foundation.getProperty(fallbackKey, null); } + /** + * get env + * + * @see #getApolloMetaServerUrl(org.springframework.core.env.ConfigurableEnvironment, String) + */ private String getEnv(ConfigurableEnvironment environment) { String profile = EnvUtils.getProfile(environment); if (profile == null) { @@ -133,6 +143,12 @@ public class ApolloConfigurationInitializer extends EnvironmentPostProcessorLogg return profile; } + /** + * get AppId + * + * @see com.ctrip.framework.foundation.internals.provider.DefaultApplicationProvider#initAppId() + */ + @SuppressWarnings("JavadocReference") private String getAppId(ConfigurableEnvironment environment) { String appId; if (environment.containsProperty(APP_ID)) { diff --git a/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ConfigurablePropertiesLoader.java b/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ConfigurablePropertiesLoader.java index 1069ae0..4e78baf 100644 --- a/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ConfigurablePropertiesLoader.java +++ b/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ConfigurablePropertiesLoader.java @@ -3,7 +3,7 @@ package com.schbrain.framework.autoconfigure.apollo; import cn.hutool.core.thread.GlobalThreadPool; import com.ctrip.framework.apollo.Config; import com.ctrip.framework.apollo.ConfigService; -import com.schbrain.common.util.properties.SchbrainMapPropertySource; +import com.schbrain.common.util.properties.OrderedMapPropertySource; import com.schbrain.common.util.support.ConfigurableProperties; import com.schbrain.framework.autoconfigure.apollo.listener.PropertiesPreparedEvent; import com.schbrain.framework.autoconfigure.apollo.listener.PropertiesPreparedEventListener; @@ -66,7 +66,7 @@ class ConfigurablePropertiesLoader { configurableProperties.forEach(properties -> { String namespace = properties.getDefaultNamespace(); Config config = ConfigService.getConfig(namespace); - SchbrainMapPropertySource propertySource = ConfigUtils.toPropertySource(namespace, config); + OrderedMapPropertySource propertySource = ConfigUtils.toPropertySource(namespace, config); if (propertySource == null) { log.warn("No configuration properties loaded under namespace: " + namespace); return; diff --git a/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/listener/PropertiesPreparedEvent.java b/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/listener/PropertiesPreparedEvent.java index 60206e2..b422726 100644 --- a/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/listener/PropertiesPreparedEvent.java +++ b/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/listener/PropertiesPreparedEvent.java @@ -1,6 +1,6 @@ package com.schbrain.framework.autoconfigure.apollo.listener; -import com.schbrain.common.util.properties.SchbrainMapPropertySource; +import com.schbrain.common.util.properties.OrderedMapPropertySource; import com.schbrain.common.util.support.ConfigurableProperties; import lombok.Getter; import org.springframework.boot.SpringApplication; @@ -21,13 +21,13 @@ public class PropertiesPreparedEvent extends ApplicationEvent { private final DeferredLogFactory deferredLogFactory; - private final SchbrainMapPropertySource propertySource; + private final OrderedMapPropertySource propertySource; private final SpringApplication application; public PropertiesPreparedEvent(ConfigurableEnvironment environment, DeferredLogFactory deferredLogFactory, - SchbrainMapPropertySource propertySource, + OrderedMapPropertySource propertySource, ConfigurableProperties properties, SpringApplication application) { super(properties); diff --git a/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/util/ConfigUtils.java b/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/util/ConfigUtils.java index d77f0c5..92e871f 100644 --- a/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/util/ConfigUtils.java +++ b/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/util/ConfigUtils.java @@ -2,7 +2,7 @@ package com.schbrain.framework.autoconfigure.apollo.util; import com.ctrip.framework.apollo.Config; import com.google.common.collect.Maps; -import com.schbrain.common.util.properties.SchbrainMapPropertySource; +import com.schbrain.common.util.properties.OrderedMapPropertySource; import lombok.extern.slf4j.Slf4j; import org.springframework.core.env.ConfigurableEnvironment; @@ -19,7 +19,7 @@ import java.util.Set; public class ConfigUtils { @Nullable - public static SchbrainMapPropertySource toPropertySource(String name, Config config) { + public static OrderedMapPropertySource toPropertySource(String name, Config config) { Set propertyNames = config.getPropertyNames(); if (propertyNames.isEmpty()) { return null; @@ -29,10 +29,10 @@ public class ConfigUtils { String property = config.getProperty(propertyName, null); configs.put(propertyName, property); } - return new SchbrainMapPropertySource(name, configs); + return new OrderedMapPropertySource(name, configs); } - public static void resolvePlaceHolders(ConfigurableEnvironment environment, SchbrainMapPropertySource propertySource) { + public static void resolvePlaceHolders(ConfigurableEnvironment environment, OrderedMapPropertySource propertySource) { Map source = propertySource.getSource(); for (Entry entry : source.entrySet()) { Object value = entry.getValue(); diff --git a/starters/apollo-spring-boot-starter/src/main/resources/META-INF/spring.factories b/starters/apollo-spring-boot-starter/src/main/resources/META-INF/spring.factories index 955c229..a704ada 100644 --- a/starters/apollo-spring-boot-starter/src/main/resources/META-INF/spring.factories +++ b/starters/apollo-spring-boot-starter/src/main/resources/META-INF/spring.factories @@ -1,3 +1,3 @@ org.springframework.boot.env.EnvironmentPostProcessor=\ - com.schbrain.framework.autoconfigure.apollo.ApolloConfigurationInitializer,\ + com.schbrain.framework.autoconfigure.apollo.ApolloConfigurationInitializerEnvironmentPostProcessor,\ com.schbrain.framework.autoconfigure.apollo.ApolloPropertiesReorderEnvironmentPostProcessor \ No newline at end of file diff --git a/starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/base/BaseServiceImpl.java b/starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/base/BaseServiceImpl.java index 276018a..95e3d3a 100644 --- a/starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/base/BaseServiceImpl.java +++ b/starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/base/BaseServiceImpl.java @@ -129,6 +129,9 @@ public class BaseServiceImpl, T extends BaseEntity> exte if (this.bizIdColumnField != null) { throw new BaseException(String.format("@BizId can't more than one in Class: \"%s\"", entityClass.getName())); } + if (bizId.getType() != String.class) { + throw new BaseException("@BizId only support String field"); + } this.bizIdColumnField = new BizIdColumnField(entityClass, bizId); BizIdHelper.putBizColumnField(entityClass, bizIdColumnField); }, field -> field.isAnnotationPresent(BizId.class)); diff --git a/starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/biz/BizIdInjectInterceptor.java b/starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/biz/BizIdInjectInterceptor.java index 08d80b1..a5b81cc 100644 --- a/starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/biz/BizIdInjectInterceptor.java +++ b/starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/biz/BizIdInjectInterceptor.java @@ -7,8 +7,6 @@ import org.apache.ibatis.executor.Executor; import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.mapping.SqlCommandType; -import java.sql.SQLException; - /** * @author liaozan * @since 2023-04-17 @@ -16,13 +14,12 @@ import java.sql.SQLException; public class BizIdInjectInterceptor implements InnerInterceptor { @Override - public void beforeUpdate(Executor executor, MappedStatement ms, Object entity) throws SQLException { + public void beforeUpdate(Executor executor, MappedStatement ms, Object entity) { SqlCommandType sqlCommandType = ms.getSqlCommandType(); if (sqlCommandType != SqlCommandType.INSERT) { return; } - Class entityClass = entity.getClass(); - BizIdColumnField bizColumnField = BizIdHelper.getBizColumnField(entityClass); + BizIdColumnField bizColumnField = BizIdHelper.getBizColumnField(entity.getClass()); if (bizColumnField == null) { return; } diff --git a/starters/oss-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/oss/OssAutoConfiguration.java b/starters/oss-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/oss/OssAutoConfiguration.java index d5eebe9..7a7e6d8 100644 --- a/starters/oss-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/oss/OssAutoConfiguration.java +++ b/starters/oss-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/oss/OssAutoConfiguration.java @@ -4,8 +4,6 @@ import com.schbrain.framework.autoconfigure.oss.properties.OssProperties; import com.schbrain.framework.autoconfigure.oss.util.OssUtils; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.core.env.ConfigurableEnvironment; /** * @author liaozan @@ -15,9 +13,8 @@ import org.springframework.core.env.ConfigurableEnvironment; @EnableConfigurationProperties(OssProperties.class) public class OssAutoConfiguration { - public OssAutoConfiguration(ConfigurableApplicationContext applicationContext, OssProperties ossProperties) { - ConfigurableEnvironment environment = applicationContext.getEnvironment(); - OssUtils.initialize(environment, ossProperties); + public OssAutoConfiguration(OssProperties ossProperties) { + OssUtils.initialize(ossProperties); } } \ No newline at end of file diff --git a/starters/oss-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/oss/util/OssUtils.java b/starters/oss-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/oss/util/OssUtils.java index 6ba2b0b..a747273 100644 --- a/starters/oss-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/oss/util/OssUtils.java +++ b/starters/oss-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/oss/util/OssUtils.java @@ -22,7 +22,6 @@ import com.schbrain.framework.autoconfigure.oss.exception.OssException; import com.schbrain.framework.autoconfigure.oss.properties.OssProperties; import com.schbrain.framework.autoconfigure.oss.properties.OssProperties.StsProperties; import lombok.extern.slf4j.Slf4j; -import org.springframework.core.env.ConfigurableEnvironment; import org.springframework.util.StringUtils; import java.io.File; @@ -48,7 +47,7 @@ public class OssUtils { private static StsProperties stsProperties; private static String directory; - public static void initialize(ConfigurableEnvironment environment, OssProperties properties) { + public static void initialize(OssProperties properties) { if (properties == null || properties.isInValid()) { log.warn("ossProperties is invalid, OssUtils will not available until reinitialize with the correct configuration"); return; @@ -60,7 +59,7 @@ public class OssUtils { stsProperties = properties.getSts(); directory = properties.getDirectory(); if (directory == null) { - directory = ApplicationName.get(environment); + directory = ApplicationName.get(); } } catch (Exception e) { log.warn("oss initialize fail, OssUtils will not available until reinitialize with the correct configuration", e); diff --git a/starters/pom.xml b/starters/pom.xml index 97e34b2..f04c8db 100644 --- a/starters/pom.xml +++ b/starters/pom.xml @@ -9,7 +9,6 @@ com.schbrain.framework schbrain-parent ${revision} - starters diff --git a/starters/xxl-job-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/xxl/XxlJobAutoConfiguration.java b/starters/xxl-job-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/xxl/XxlJobAutoConfiguration.java index a29b64f..874a13b 100644 --- a/starters/xxl-job-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/xxl/XxlJobAutoConfiguration.java +++ b/starters/xxl-job-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/xxl/XxlJobAutoConfiguration.java @@ -10,7 +10,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Conditional; -import org.springframework.core.env.ConfigurableEnvironment; import java.nio.file.Paths; @@ -25,15 +24,12 @@ public class XxlJobAutoConfiguration { @Bean @ConditionalOnMissingBean(XxlJobExecutor.class) - public SchbrainXxlJobExecutor schbrainXxlJobSpringExecutor(ConfigurableEnvironment environment, - XxlJobProperties xxlJobProperties, - LoggerProperties loggingProperties) { - String applicationName = ApplicationName.get(environment); + public SchbrainXxlJobExecutor schbrainXxlJobSpringExecutor(XxlJobProperties xxlJobProperties, LoggerProperties loggingProperties) { SchbrainXxlJobExecutor executor = new SchbrainXxlJobExecutor(); executor.setAdminAddresses(xxlJobProperties.getAdminAddresses()); executor.setIp(xxlJobProperties.getIp()); executor.setPort(xxlJobProperties.getPort()); - executor.setAppName(applicationName); + executor.setAppName(ApplicationName.get()); executor.setAccessToken(xxlJobProperties.getAccessToken()); executor.setLogPath(Paths.get(loggingProperties.getLogPath(), "xxl-job").toString()); executor.setLogRetentionDays(xxlJobProperties.getLogRetentionDays()); diff --git a/support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/EnvironmentPostProcessorLoggerAwareAdapter.java b/support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/EnvironmentPostProcessorLoggerAwareAdapter.java deleted file mode 100644 index 992860a..0000000 --- a/support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/EnvironmentPostProcessorLoggerAwareAdapter.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.schbrain.framework.support.spring; - -import lombok.Getter; -import org.apache.commons.logging.Log; -import org.springframework.boot.ConfigurableBootstrapContext; -import org.springframework.boot.env.EnvironmentPostProcessor; -import org.springframework.boot.logging.DeferredLogFactory; - -/** - * @author liaozan - * @since 2021/11/22 - */ -@Getter -public abstract class EnvironmentPostProcessorLoggerAwareAdapter implements EnvironmentPostProcessor { - - private final Log log; - private final DeferredLogFactory deferredLogFactory; - private final ConfigurableBootstrapContext bootstrapContext; - - public EnvironmentPostProcessorLoggerAwareAdapter(DeferredLogFactory logFactory, ConfigurableBootstrapContext bootstrapContext) { - this.log = logFactory.getLog(getClass()); - this.bootstrapContext = bootstrapContext; - this.deferredLogFactory = logFactory; - } - -} \ No newline at end of file diff --git a/support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/LoggerAwareEnvironmentPostProcessor.java b/support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/LoggerAwareEnvironmentPostProcessor.java new file mode 100644 index 0000000..d107217 --- /dev/null +++ b/support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/LoggerAwareEnvironmentPostProcessor.java @@ -0,0 +1,33 @@ +package com.schbrain.framework.support.spring; + +import lombok.Getter; +import org.apache.commons.logging.Log; +import org.springframework.boot.BootstrapContext; +import org.springframework.boot.ConfigurableBootstrapContext; +import org.springframework.boot.env.EnvironmentPostProcessor; +import org.springframework.boot.logging.DeferredLogFactory; +import org.springframework.context.ConfigurableApplicationContext; + +/** + * @author liaozan + * @since 2021/11/22 + */ +@Getter +public abstract class LoggerAwareEnvironmentPostProcessor implements EnvironmentPostProcessor { + + protected final Log log; + protected final DeferredLogFactory deferredLogFactory; + protected final ConfigurableBootstrapContext bootstrapContext; + + public LoggerAwareEnvironmentPostProcessor(DeferredLogFactory logFactory, ConfigurableBootstrapContext bootstrapContext) { + this.log = logFactory.getLog(getClass()); + this.bootstrapContext = bootstrapContext; + this.deferredLogFactory = logFactory; + this.bootstrapContext.addCloseListener(event -> onBootstrapContextClose(event.getBootstrapContext(), event.getApplicationContext())); + } + + protected void onBootstrapContextClose(BootstrapContext bootstrapContext, ConfigurableApplicationContext applicationContext) { + + } + +} \ No newline at end of file diff --git a/support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/defaults/DefaultPropertiesEnvironmentPostProcessor.java b/support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/defaults/DefaultPropertiesEnvironmentPostProcessor.java index b0286cf..440c847 100644 --- a/support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/defaults/DefaultPropertiesEnvironmentPostProcessor.java +++ b/support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/defaults/DefaultPropertiesEnvironmentPostProcessor.java @@ -5,7 +5,7 @@ import cn.hutool.core.util.ArrayUtil; import com.schbrain.common.constants.DateTimeFormatters; import com.schbrain.common.util.EnvUtils; import com.schbrain.common.util.PortUtils; -import com.schbrain.framework.support.spring.EnvironmentPostProcessorLoggerAwareAdapter; +import com.schbrain.framework.support.spring.LoggerAwareEnvironmentPostProcessor; import org.springframework.boot.*; import org.springframework.boot.actuate.autoconfigure.health.HealthProperties.Show; import org.springframework.boot.actuate.info.InfoPropertiesInfoContributor.Mode; @@ -23,7 +23,7 @@ import java.util.*; * @author liaozan * @since 2021/12/18 */ -public class DefaultPropertiesEnvironmentPostProcessor extends EnvironmentPostProcessorLoggerAwareAdapter implements Ordered { +public class DefaultPropertiesEnvironmentPostProcessor extends LoggerAwareEnvironmentPostProcessor implements Ordered { /** * set default properties after configData loaded @@ -80,7 +80,7 @@ public class DefaultPropertiesEnvironmentPostProcessor extends EnvironmentPostPr if (ArrayUtil.isEmpty(environment.getActiveProfiles())) { environment.setActiveProfiles(EnvUtils.DEVELOPMENT); defaultProperties.put(SPRING_PROFILE_ACTIVE, EnvUtils.DEVELOPMENT); - getLog().info(StrFormatter.format("{} is unset, set to {} by default", SPRING_PROFILE_ACTIVE, EnvUtils.DEVELOPMENT)); + log.info(StrFormatter.format("{} is unset, set to {} by default", SPRING_PROFILE_ACTIVE, EnvUtils.DEVELOPMENT)); } } @@ -92,8 +92,8 @@ public class DefaultPropertiesEnvironmentPostProcessor extends EnvironmentPostPr return; } if (!environment.containsProperty(DUBBO_REGISTER_KEY)) { - getLog().info(StrFormatter.format("Not running on CloudPlatform, {} is set to false by default", DUBBO_REGISTER_KEY)); - getLog().info(StrFormatter.format("If you want force to register with Dubbo Registry, set {} = true", DUBBO_REGISTER_KEY)); + log.info(StrFormatter.format("Not running on CloudPlatform, {} is set to false by default", DUBBO_REGISTER_KEY)); + log.info(StrFormatter.format("If you want force to register with Dubbo Registry, set {} = true", DUBBO_REGISTER_KEY)); defaultProperties.put(DUBBO_REGISTER_KEY, false); } } -- GitLab