From f5d46643e91936168f45cf0a99f87c8b5cb6db3a Mon Sep 17 00:00:00 2001 From: zhouhao Date: Mon, 8 Jul 2024 14:41:30 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...DefaultAuthorizationAutoConfiguration.java | 7 --- .../DefaultTwoFactorValidatorManager.java | 18 +----- .../AopAuthorizeAutoConfiguration.java | 2 +- .../AuthorizingHandlerAutoConfiguration.java | 11 +++- .../basic/web/UserTokenWebFilter.java | 61 +++++++++---------- .../configuration/EasyormConfiguration.java | 55 ++++++++++------- .../EasyormRepositoryRegistrar.java | 30 ++++----- .../crud/web/CommonErrorControllerAdvice.java | 10 +++ .../i18n/commons/messages_en.properties | 3 +- .../i18n/commons/messages_zh.properties | 1 + hsweb-core/pom.xml | 1 - ...opDataSourceSwitcherAutoConfiguration.java | 2 +- .../DynamicDataSourceAutoConfiguration.java | 23 ------- ...pAccessLoggerSupportAutoConfiguration.java | 2 +- ...ot.autoconfigure.AutoConfiguration.imports | 1 - 15 files changed, 104 insertions(+), 123 deletions(-) diff --git a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/simple/DefaultAuthorizationAutoConfiguration.java b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/simple/DefaultAuthorizationAutoConfiguration.java index 704980582..ece3e0225 100644 --- a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/simple/DefaultAuthorizationAutoConfiguration.java +++ b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/simple/DefaultAuthorizationAutoConfiguration.java @@ -68,13 +68,6 @@ public class DefaultAuthorizationAutoConfiguration { return new SimpleDataAccessConfigBuilderFactory(); } - @Bean - @ConditionalOnMissingBean(TwoFactorValidatorManager.class) - @ConfigurationProperties("hsweb.authorize.two-factor") - public DefaultTwoFactorValidatorManager defaultTwoFactorValidatorManager() { - return new DefaultTwoFactorValidatorManager(); - } - @Bean @ConditionalOnMissingBean(AuthenticationBuilderFactory.class) public AuthenticationBuilderFactory authenticationBuilderFactory(DataAccessConfigBuilderFactory dataAccessConfigBuilderFactory) { diff --git a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/twofactor/defaults/DefaultTwoFactorValidatorManager.java b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/twofactor/defaults/DefaultTwoFactorValidatorManager.java index f0a0c98f9..bd9c187c1 100644 --- a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/twofactor/defaults/DefaultTwoFactorValidatorManager.java +++ b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/twofactor/defaults/DefaultTwoFactorValidatorManager.java @@ -15,7 +15,7 @@ import java.util.Map; * @author zhouhao * @since 3.0.4 */ -public class DefaultTwoFactorValidatorManager implements TwoFactorValidatorManager, BeanPostProcessor { +public class DefaultTwoFactorValidatorManager implements TwoFactorValidatorManager { @Getter @Setter @@ -35,20 +35,4 @@ public class DefaultTwoFactorValidatorManager implements TwoFactorValidatorManag return validatorProvider.createTwoFactorValidator(userId, operation); } - @Override - public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { - return bean; - } - - @Override - public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { - if (bean instanceof TwoFactorValidatorProvider) { - TwoFactorValidatorProvider provider = ((TwoFactorValidatorProvider) bean); - providers.put(provider.getProvider(), provider); - if (provider.getProvider().equalsIgnoreCase(defaultProvider)) { - providers.put("default", provider); - } - } - return bean; - } } diff --git a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration/AopAuthorizeAutoConfiguration.java b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration/AopAuthorizeAutoConfiguration.java index c8c2527c9..b68f6fd29 100644 --- a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration/AopAuthorizeAutoConfiguration.java +++ b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration/AopAuthorizeAutoConfiguration.java @@ -13,7 +13,7 @@ import org.springframework.context.annotation.Configuration; /** * @author zhouhao */ -@Configuration +@Configuration(proxyBeanMethods = false) @AutoConfigureAfter(AuthorizingHandlerAutoConfiguration.class) public class AopAuthorizeAutoConfiguration { diff --git a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration/AuthorizingHandlerAutoConfiguration.java b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration/AuthorizingHandlerAutoConfiguration.java index ab7b364a0..1edd1f1fb 100644 --- a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration/AuthorizingHandlerAutoConfiguration.java +++ b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/configuration/AuthorizingHandlerAutoConfiguration.java @@ -10,6 +10,7 @@ import org.hswebframework.web.authorization.basic.handler.DefaultAuthorizingHand import org.hswebframework.web.authorization.basic.handler.UserAllowPermissionHandler; import org.hswebframework.web.authorization.basic.web.*; import org.hswebframework.web.authorization.token.UserTokenManager; +import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -38,8 +39,14 @@ public class AuthorizingHandlerAutoConfiguration { @Bean @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE) - public UserTokenWebFilter userTokenWebFilter() { - return new UserTokenWebFilter(); + public UserTokenWebFilter userTokenWebFilter(UserTokenManager userTokenManager, + ObjectProvider tokenParsers, + ObjectProvider tokenGenerators) { + UserTokenWebFilter filter = new UserTokenWebFilter(userTokenManager); + tokenParsers.forEach(filter::register); + tokenGenerators.forEach(filter::register); + + return filter; } diff --git a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/web/UserTokenWebFilter.java b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/web/UserTokenWebFilter.java index 711b32d73..a6db0d83f 100644 --- a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/web/UserTokenWebFilter.java +++ b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/web/UserTokenWebFilter.java @@ -1,5 +1,6 @@ package org.hswebframework.web.authorization.basic.web; +import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.hswebframework.web.authorization.events.AuthorizationSuccessEvent; import org.hswebframework.web.authorization.token.ParsedToken; @@ -27,40 +28,39 @@ import java.util.List; import java.util.Map; import java.util.function.Function; -@Component @Slf4j -public class UserTokenWebFilter implements WebFilter, BeanPostProcessor { +@AllArgsConstructor +public class UserTokenWebFilter implements WebFilter { private final List parsers = new ArrayList<>(); private final Map tokenGeneratorMap = new HashMap<>(); - @Autowired - private UserTokenManager userTokenManager; + private final UserTokenManager userTokenManager; @Override @NonNull public Mono filter(@NonNull ServerWebExchange exchange, WebFilterChain chain) { return Flux - .fromIterable(parsers) - .flatMap(parser -> parser.parseToken(exchange)) - .next() - .map(token -> chain - .filter(exchange) - .contextWrite(Context.of(ParsedToken.class, token))) - .defaultIfEmpty(chain.filter(exchange)) - .flatMap(Function.identity()) - .contextWrite(ReactiveLogger.start("requestId", exchange.getRequest().getId())); + .fromIterable(parsers) + .flatMap(parser -> parser.parseToken(exchange)) + .next() + .map(token -> chain + .filter(exchange) + .contextWrite(Context.of(ParsedToken.class, token))) + .defaultIfEmpty(chain.filter(exchange)) + .flatMap(Function.identity()) + .contextWrite(ReactiveLogger.start("requestId", exchange.getRequest().getId())); } @EventListener public void handleUserSign(AuthorizationSuccessEvent event) { ReactiveUserTokenGenerator generator = event - .getParameter("tokenType") - .map(tokenGeneratorMap::get) - .orElseGet(() -> tokenGeneratorMap.get("default")); + .getParameter("tokenType") + .map(tokenGeneratorMap::get) + .orElseGet(() -> tokenGeneratorMap.get("default")); if (generator != null) { GeneratedToken token = generator.generate(event.getAuthentication()); event.getResult().putAll(token.getResponse()); @@ -72,26 +72,23 @@ public class UserTokenWebFilter implements WebFilter, BeanPostProcessor { .orElse(token.getTimeout()); event.getResult().put("expires", expires); event.async(userTokenManager - .signIn(token.getToken(), token.getType(), event - .getAuthentication() - .getUser() - .getId(), expires) - .doOnNext(t -> log.debug("user [{}] sign in", t.getUserId())) - .then()); + .signIn(token.getToken(), token.getType(), event + .getAuthentication() + .getUser() + .getId(), expires) + .doOnNext(t -> log.debug("user [{}] sign in", t.getUserId())) + .then()); } } } - @Override - public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { - if (bean instanceof ReactiveUserTokenGenerator) { - ReactiveUserTokenGenerator generator = ((ReactiveUserTokenGenerator) bean); - tokenGeneratorMap.put(generator.getTokenType(), generator); - } - if (bean instanceof ReactiveUserTokenParser) { - parsers.add(((ReactiveUserTokenParser) bean)); - } - return bean; + public void register(ReactiveUserTokenGenerator generator) { + tokenGeneratorMap.put(generator.getTokenType(), generator); } + + public void register(ReactiveUserTokenParser parser) { + parsers.add(parser); + } + } diff --git a/hsweb-commons/hsweb-commons-crud/src/main/java/org/hswebframework/web/crud/configuration/EasyormConfiguration.java b/hsweb-commons/hsweb-commons-crud/src/main/java/org/hswebframework/web/crud/configuration/EasyormConfiguration.java index d82cb49c0..5b4265c55 100644 --- a/hsweb-commons/hsweb-commons-crud/src/main/java/org/hswebframework/web/crud/configuration/EasyormConfiguration.java +++ b/hsweb-commons/hsweb-commons-crud/src/main/java/org/hswebframework/web/crud/configuration/EasyormConfiguration.java @@ -37,9 +37,11 @@ import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; import java.beans.PropertyDescriptor; import java.lang.annotation.Annotation; @@ -67,15 +69,26 @@ public class EasyormConfiguration { return factory; } + @Bean + @Primary + public EventListener easyormEventListener(ObjectProvider eventListeners) { + CompositeEventListener eventListener = new CompositeEventListener(); + eventListeners.forEach(eventListener::addListener); + return eventListener; + } + @Bean @ConditionalOnMissingBean @SuppressWarnings("all") public RDBDatabaseMetadata databaseMetadata(Optional syncSqlExecutor, Optional reactiveSqlExecutor, + ObjectProvider features, EasyormProperties properties) { RDBDatabaseMetadata metadata = properties.createDatabaseMetadata(); syncSqlExecutor.ifPresent(metadata::addFeature); reactiveSqlExecutor.ifPresent(metadata::addFeature); + features.forEach(metadata::addFeature); + if (properties.isAutoDdl() && reactiveSqlExecutor.isPresent()) { for (RDBSchemaMetadata schema : metadata.getSchemas()) { schema.loadAllTableReactive() @@ -97,25 +110,25 @@ public class EasyormConfiguration { return new DefaultQueryHelper(databaseOperator); } - @Bean - public BeanPostProcessor autoRegisterFeature(RDBDatabaseMetadata metadata) { - CompositeEventListener eventListener = new CompositeEventListener(); - metadata.addFeature(eventListener); - return new BeanPostProcessor() { - @Override - public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { - - if (bean instanceof EventListener) { - eventListener.addListener(((EventListener) bean)); - } else if (bean instanceof Feature) { - metadata.addFeature(((Feature) bean)); - } - - return bean; - } - }; - } - +// @Bean +// public BeanPostProcessor autoRegisterFeature(RDBDatabaseMetadata metadata) { +// CompositeEventListener eventListener = new CompositeEventListener(); +// metadata.addFeature(eventListener); +// return new BeanPostProcessor() { +// @Override +// public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { +// +// if (bean instanceof EventListener) { +// eventListener.addListener(((EventListener) bean)); +// } else if (bean instanceof Feature) { +// metadata.addFeature(((Feature) bean)); +// } +// +// return bean; +// } +// }; +// } +// @Bean public CreatorEventListener creatorEventListener() { @@ -201,7 +214,7 @@ public class EasyormConfiguration { @Bean @ConditionalOnMissingBean - public EntityTableMetadataParser jpaEntityTableMetadataParser(RDBDatabaseMetadata metadata, + public EntityTableMetadataParser jpaEntityTableMetadataParser(ApplicationContext context, EntityFactory factory, ObjectProvider customizers) { @@ -244,7 +257,7 @@ public class EasyormConfiguration { }; } }; - parser.setDatabaseMetadata(metadata); + parser.setDatabaseMetadata(()->context.getBean(RDBDatabaseMetadata.class)); return parser; } diff --git a/hsweb-commons/hsweb-commons-crud/src/main/java/org/hswebframework/web/crud/configuration/EasyormRepositoryRegistrar.java b/hsweb-commons/hsweb-commons-crud/src/main/java/org/hswebframework/web/crud/configuration/EasyormRepositoryRegistrar.java index 18ae3098b..3f7aecc31 100644 --- a/hsweb-commons/hsweb-commons-crud/src/main/java/org/hswebframework/web/crud/configuration/EasyormRepositoryRegistrar.java +++ b/hsweb-commons/hsweb-commons-crud/src/main/java/org/hswebframework/web/crud/configuration/EasyormRepositoryRegistrar.java @@ -4,19 +4,15 @@ import lombok.*; import lombok.extern.slf4j.Slf4j; import org.hswebframework.ezorm.rdb.mapping.defaults.DefaultReactiveRepository; import org.hswebframework.ezorm.rdb.mapping.defaults.DefaultSyncRepository; -import org.hswebframework.utils.ClassUtils; import org.hswebframework.web.crud.annotation.EnableEasyormRepository; -import org.hswebframework.web.api.crud.entity.ImplementFor; import org.hswebframework.web.crud.annotation.Reactive; import org.hswebframework.web.api.crud.entity.GenericEntity; -import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.support.AbstractBeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.RootBeanDefinition; +import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ImportBeanDefinitionRegistrar; -import org.springframework.context.index.CandidateComponentsIndex; -import org.springframework.context.index.CandidateComponentsIndexLoader; import org.springframework.core.GenericTypeResolver; import org.springframework.core.ResolvableType; import org.springframework.core.annotation.AnnotationUtils; @@ -25,12 +21,9 @@ import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.ResourcePatternResolver; import org.springframework.core.type.AnnotationMetadata; import org.springframework.core.type.classreading.CachingMetadataReaderFactory; -import org.springframework.core.type.classreading.MetadataReader; import org.springframework.core.type.classreading.MetadataReaderFactory; -import org.springframework.core.type.classreading.SimpleMetadataReaderFactory; import org.springframework.util.ReflectionUtils; -import javax.persistence.Table; import java.io.IOException; import java.lang.annotation.Annotation; import java.lang.reflect.Method; @@ -62,16 +55,24 @@ public class EasyormRepositoryRegistrar implements ImportBeanDefinitionRegistrar String path = ResourcePatternResolver .CLASSPATH_ALL_URL_PREFIX .concat(packageStr.replace(".", "/")).concat("/**/*.class"); - return Arrays.stream(resourcePatternResolver.getResources(path)); + + String clazz = ResourcePatternResolver + .CLASSPATH_ALL_URL_PREFIX + .concat(packageStr.replace(".", "/")).concat(".class"); + + return Stream.concat( + Arrays.stream(resourcePatternResolver.getResources(path)), + Arrays.stream(resourcePatternResolver.getResources(clazz)) + ); } protected Set scanEntities(String[] packageStr) { return Stream - .of(packageStr) - .flatMap(this::doGetResources) - .map(this::getResourceClassName) - .filter(Objects::nonNull) - .collect(Collectors.toSet()); + .of(packageStr) + .flatMap(this::doGetResources) + .map(this::getResourceClassName) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); } private Class findIdType(Class entityType) { @@ -119,7 +120,6 @@ public class EasyormRepositoryRegistrar implements ImportBeanDefinitionRegistrar Class[] anno = (Class[]) attr.get("annotation"); Set entityInfos = new HashSet<>(); - CandidateComponentsIndex index = CandidateComponentsIndexLoader.loadIndex(org.springframework.util.ClassUtils.getDefaultClassLoader()); for (String className : scanEntities(arr)) { Class entityType = org.springframework.util.ClassUtils.forName(className, null); if (Arrays.stream(anno) diff --git a/hsweb-commons/hsweb-commons-crud/src/main/java/org/hswebframework/web/crud/web/CommonErrorControllerAdvice.java b/hsweb-commons/hsweb-commons-crud/src/main/java/org/hswebframework/web/crud/web/CommonErrorControllerAdvice.java index fd8517dff..689439ad0 100644 --- a/hsweb-commons/hsweb-commons-crud/src/main/java/org/hswebframework/web/crud/web/CommonErrorControllerAdvice.java +++ b/hsweb-commons/hsweb-commons-crud/src/main/java/org/hswebframework/web/crud/web/CommonErrorControllerAdvice.java @@ -25,6 +25,7 @@ import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.bind.support.WebExchangeBindException; +import org.springframework.web.reactive.resource.NoResourceFoundException; import org.springframework.web.server.*; import reactor.core.publisher.Mono; @@ -44,6 +45,15 @@ import java.util.stream.Collectors; @Order public class CommonErrorControllerAdvice { + @ExceptionHandler + @ResponseStatus(HttpStatus.NOT_FOUND) + public Mono> handleException(NoResourceFoundException e) { + return LocaleUtils + .resolveMessageReactive("error.resource_not_found") + .map(msg -> ResponseMessage.error(404, "error.resource_not_found", msg)); + } + + @ExceptionHandler @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) public Mono> handleException(TransactionException e) { diff --git a/hsweb-commons/hsweb-commons-crud/src/main/resources/i18n/commons/messages_en.properties b/hsweb-commons/hsweb-commons-crud/src/main/resources/i18n/commons/messages_en.properties index 275bc9687..b04d9cd69 100644 --- a/hsweb-commons/hsweb-commons-crud/src/main/resources/i18n/commons/messages_en.properties +++ b/hsweb-commons/hsweb-commons-crud/src/main/resources/i18n/commons/messages_en.properties @@ -5,4 +5,5 @@ error.duplicate_data=Duplicate data error.data_error=Data error error.internal_server_error = Internal server error error.tree_entity_cyclic_dependency=Cannot modify parent node as oneself or one's own child node -error.tree_entity_parent_id_not_exist=Parent node does not exist or has been deleted \ No newline at end of file +error.tree_entity_parent_id_not_exist=Parent node does not exist or has been deleted +error.resource_not_found=Resource not found \ No newline at end of file diff --git a/hsweb-commons/hsweb-commons-crud/src/main/resources/i18n/commons/messages_zh.properties b/hsweb-commons/hsweb-commons-crud/src/main/resources/i18n/commons/messages_zh.properties index fdc272513..c07b61eba 100644 --- a/hsweb-commons/hsweb-commons-crud/src/main/resources/i18n/commons/messages_zh.properties +++ b/hsweb-commons/hsweb-commons-crud/src/main/resources/i18n/commons/messages_zh.properties @@ -4,5 +4,6 @@ error.method_not_allowed=不支持的请求方法 error.duplicate_data=重复的数据 error.data_error=数据错误 error.internal_server_error=服务器内部错误 +error.resource_not_found=资源不存在 error.tree_entity_cyclic_dependency=不能修改父节点为自己或者自己的子节点 error.tree_entity_parent_id_not_exist=父节点不存在或已被删除 \ No newline at end of file diff --git a/hsweb-core/pom.xml b/hsweb-core/pom.xml index 0f183be52..4c16b4914 100644 --- a/hsweb-core/pom.xml +++ b/hsweb-core/pom.xml @@ -66,7 +66,6 @@ org.glassfish.expressly expressly 5.0.0 - provided diff --git a/hsweb-datasource/hsweb-datasource-api/src/main/java/org/hswebframework/web/datasource/AopDataSourceSwitcherAutoConfiguration.java b/hsweb-datasource/hsweb-datasource-api/src/main/java/org/hswebframework/web/datasource/AopDataSourceSwitcherAutoConfiguration.java index 1a7a92995..9e79de1b2 100644 --- a/hsweb-datasource/hsweb-datasource-api/src/main/java/org/hswebframework/web/datasource/AopDataSourceSwitcherAutoConfiguration.java +++ b/hsweb-datasource/hsweb-datasource-api/src/main/java/org/hswebframework/web/datasource/AopDataSourceSwitcherAutoConfiguration.java @@ -31,7 +31,7 @@ import static org.hswebframework.web.datasource.strategy.AnnotationDataSourceSwi * @author zhouhao * @since 3.0 */ -@Configuration +@Configuration(proxyBeanMethods = false) public class AopDataSourceSwitcherAutoConfiguration { @Bean diff --git a/hsweb-datasource/hsweb-datasource-api/src/main/java/org/hswebframework/web/datasource/DynamicDataSourceAutoConfiguration.java b/hsweb-datasource/hsweb-datasource-api/src/main/java/org/hswebframework/web/datasource/DynamicDataSourceAutoConfiguration.java index f95973c48..a287ab29f 100644 --- a/hsweb-datasource/hsweb-datasource-api/src/main/java/org/hswebframework/web/datasource/DynamicDataSourceAutoConfiguration.java +++ b/hsweb-datasource/hsweb-datasource-api/src/main/java/org/hswebframework/web/datasource/DynamicDataSourceAutoConfiguration.java @@ -1,13 +1,9 @@ package org.hswebframework.web.datasource; -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.ImportAutoConfiguration; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; /** * @author zhouhao @@ -22,24 +18,5 @@ public class DynamicDataSourceAutoConfiguration { return new HswebDataSourceProperties(); } - @Bean - public BeanPostProcessor switcherInitProcessor() { - return new BeanPostProcessor() { - @Override - public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { - return bean; - } - - @Override - public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { - if (bean instanceof DynamicDataSourceService) { - DataSourceHolder.dynamicDataSourceService = ((DynamicDataSourceService) bean); - } - - return bean; - } - }; - } - } diff --git a/hsweb-logging/hsweb-access-logging-aop/src/main/java/org/hswebframework/web/logging/aop/AopAccessLoggerSupportAutoConfiguration.java b/hsweb-logging/hsweb-access-logging-aop/src/main/java/org/hswebframework/web/logging/aop/AopAccessLoggerSupportAutoConfiguration.java index d48019b9e..4ab23eff2 100644 --- a/hsweb-logging/hsweb-access-logging-aop/src/main/java/org/hswebframework/web/logging/aop/AopAccessLoggerSupportAutoConfiguration.java +++ b/hsweb-logging/hsweb-access-logging-aop/src/main/java/org/hswebframework/web/logging/aop/AopAccessLoggerSupportAutoConfiguration.java @@ -16,7 +16,7 @@ import org.springframework.core.annotation.Order; * @see AopAccessLoggerSupport */ @ConditionalOnClass(AccessLoggerListener.class) -@Configuration +@Configuration(proxyBeanMethods = false) public class AopAccessLoggerSupportAutoConfiguration { @Bean diff --git a/hsweb-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/hsweb-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index f9f4af520..c09b3d68a 100644 --- a/hsweb-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/hsweb-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,5 +1,4 @@ org.hswebframework.web.starter.jackson.CustomCodecsAutoConfiguration org.hswebframework.web.starter.jackson.CustomCodecsAutoConfiguration.JacksonDecoderConfiguration -org.hswebframework.web.starter.HswebAutoConfiguration org.hswebframework.web.starter.CorsAutoConfiguration org.hswebframework.web.starter.i18n.I18nConfiguration \ No newline at end of file