在Bladex中开启乐观锁,启动gateway项目报错

Blade 未结 1 77
tuanzhang
tuanzhang 剑侠 2025-03-18 16:35

/**

 * BladeX Commercial License Agreement

 * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.

 * <p>

 * Use of this software is governed by the Commercial License Agreement

 * obtained after purchasing a license from BladeX.

 * <p>

 * 1. This software is for development use only under a valid license

 * from BladeX.

 * <p>

 * 2. Redistribution of this software's source code to any third party

 * without a commercial license is strictly prohibited.

 * <p>

 * 3. Licensees may copyright their own code but cannot use segments

 * from this software for such purposes. Copyright of this software

 * remains with BladeX.

 * <p>

 * Using this software signifies agreement to this License, and the software

 * must not be used for illegal purposes.

 * <p>

 * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is

 * not liable for any claims arising from secondary or illegal development.

 * <p>

 * Author: Chill Zhuang (bladejava@qq.com)

 */

package org.springblade.common.config;


import org.springblade.core.mp.intercept.QueryInterceptor;

import org.springblade.core.mp.plugins.BladePaginationInterceptor;

import org.springblade.core.mp.props.MybatisPlusProperties;

import org.springblade.core.tool.utils.ObjectUtil;

import org.springframework.beans.factory.ObjectProvider;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.core.annotation.AnnotationAwareOrderComparator;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;


import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;

import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;

import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;


import lombok.AllArgsConstructor;


/**

 * 公共封装包配置类

 *

 * @author Chill

 */

@Configuration(proxyBeanMethods = false)

@AllArgsConstructor

public class BladeCommonConfiguration implements WebMvcConfigurer{


@Bean

public MybatisPlusInterceptor mybatisPlusInterceptor(ObjectProvider<QueryInterceptor[]> queryInterceptors,

TenantLineInnerInterceptor tenantLineInnerInterceptor,

MybatisPlusProperties mybatisPlusProperties) {

MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();

// 配置租户拦截器

if (mybatisPlusProperties.getTenantMode()) {

interceptor.addInnerInterceptor(tenantLineInnerInterceptor);

}

// 配置分页拦截器

BladePaginationInterceptor paginationInterceptor = new BladePaginationInterceptor();

// 配置自定义查询拦截器

QueryInterceptor[] queryInterceptorArray = queryInterceptors.getIfAvailable();

if (ObjectUtil.isNotEmpty(queryInterceptorArray)) {

AnnotationAwareOrderComparator.sort(queryInterceptorArray);

paginationInterceptor.setQueryInterceptors(queryInterceptorArray);

}

paginationInterceptor.setMaxLimit(mybatisPlusProperties.getPageLimit());

paginationInterceptor.setOverflow(mybatisPlusProperties.getOverflow());

paginationInterceptor.setOptimizeJoin(mybatisPlusProperties.getOptimizeJoin());

// 配置分页拦截器

interceptor.addInnerInterceptor(paginationInterceptor);

// 配置乐观锁拦截器

interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());

return interceptor;

}

}



org.springframework.beans.factory.BeanDefinitionStoreException: I/O failure while processing configuration class [org.springblade.core.mp.config.MybatisPlusConfiguration]

at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:251) ~[spring-context-6.1.15.jar:6.1.15]

at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:534) ~[spring-context-6.1.15.jar:6.1.15]

at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGroupingHandler.lambda$processGroupImports$1(ConfigurationClassParser.java:746) ~[spring-context-6.1.15.jar:6.1.15]

at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[na:na]

at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGroupingHandler.processGroupImports(ConfigurationClassParser.java:743) ~[spring-context-6.1.15.jar:6.1.15]

at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorHandler.process(ConfigurationClassParser.java:714) ~[spring-context-6.1.15.jar:6.1.15]

at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:183) ~[spring-context-6.1.15.jar:6.1.15]

at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:417) ~[spring-context-6.1.15.jar:6.1.15]

at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:290) ~[spring-context-6.1.15.jar:6.1.15]

at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349) ~[spring-context-6.1.15.jar:6.1.15]

at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:118) ~[spring-context-6.1.15.jar:6.1.15]

at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:789) ~[spring-context-6.1.15.jar:6.1.15]

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:607) ~[spring-context-6.1.15.jar:6.1.15]

at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:66) ~[spring-boot-3.2.12.jar:3.2.12]

at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.12.jar:3.2.12]

at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.12.jar:3.2.12]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) ~[spring-boot-3.2.12.jar:3.2.12]

at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:149) ~[spring-boot-3.2.12.jar:3.2.12]

at org.springblade.core.launch.BladeApplication.run(BladeApplication.java:59) ~[blade-core-launch-4.4.0.RELEASE.jar:4.4.0.RELEASE]

at org.springblade.gateway.GateWayApplication.main(GateWayApplication.java:45) ~[classes/:na]

Caused by: java.io.FileNotFoundException: class path resource [org/springframework/web/servlet/config/annotation/WebMvcConfigurer.class] cannot be opened because it does not exist

at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:215) ~[spring-core-6.1.15.jar:6.1.15]

at org.springframework.core.type.classreading.SimpleMetadataReader.getClassReader(SimpleMetadataReader.java:54) ~[spring-core-6.1.15.jar:6.1.15]

at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:48) ~[spring-core-6.1.15.jar:6.1.15]

at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:103) ~[spring-core-6.1.15.jar:6.1.15]

at org.springframework.boot.type.classreading.ConcurrentReferenceCachingMetadataReaderFactory.createMetadataReader(ConcurrentReferenceCachingMetadataReaderFactory.java:86) ~[spring-boot-3.2.12.jar:3.2.12]

at org.springframework.boot.type.classreading.ConcurrentReferenceCachingMetadataReaderFactory.getMetadataReader(ConcurrentReferenceCachingMetadataReaderFactory.java:73) ~[spring-boot-3.2.12.jar:3.2.12]

at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:81) ~[spring-core-6.1.15.jar:6.1.15]

at org.springframework.context.annotation.ConfigurationClassParser.asSourceClass(ConfigurationClassParser.java:630) ~[spring-context-6.1.15.jar:6.1.15]

at org.springframework.context.annotation.ConfigurationClassParser$SourceClass.getInterfaces(ConfigurationClassParser.java:956) ~[spring-context-6.1.15.jar:6.1.15]

at org.springframework.context.annotation.ConfigurationClassParser.processInterfaces(ConfigurationClassParser.java:396) ~[spring-context-6.1.15.jar:6.1.15]

at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:342) ~[spring-context-6.1.15.jar:6.1.15]

at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:246) ~[spring-context-6.1.15.jar:6.1.15]

... 19 common frames omitted



1条回答
  • 2025-03-18 17:55

    gateway不要引入包含了spring-web的任何依赖,gateway是webflux,引入spring-web的依赖就会报这个错

    作者追问:2025-03-18 19:09

    BladeCommonConfiguration 是在common里面,我看geteway里面已经把web相关的包排除掉了

    作者追问:2天前

    我看了咱们微服务架构不能使用mybatis-plus这种方式处理乐观锁是吧?需要基于 Spring WebFlux来做是吧,有没有写好的配置发一下。或者现在的bladex这个项目如何处理乐观锁

    0 讨论(0)
代码语言
提交回复