ProGuard对类进行混淆启动应用报“Bean定义冲突异常ConflictingBeanDefinitionException”的解决
问题:Bean定义冲突异常
ProGuard对类进行混淆之后,启动应用报“Bean定义冲突异常ConflictingBeanDefinitionException”,
2021-12-16 14:19:38,182 [main] ERROR SpringApplication:826 - Application run failedorg.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [ com.waylau.boot.Application]; nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'a' for bean class [ com.waylau.core.pegging.service.impl.a] conflicts with existing, non-compatible bean definition of same name and class [ com.waylau.base.productstructure.service.impl.a]; nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'a' for bean class [ com.waylau.core.pegging.service.impl.a] conflicts with existing, non-compatible bean definition of same name and class [ com.waylau.base.productstructure.service.impl.a] at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:610) ~[spring-context-5.2.15.RELEASE.jar!/:5.2.15.RELEASE] at org.springframework.context.annotation.ConfigurationClassParser.access$800(ConfigurationClassParser.java:111) ~[spring-context-5.2.15.RELEASE.jar!/:5.2.15.RELEASE] at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGroupingHandler.lambda$processGroupImports$1(ConfigurationClassParser.java:812) ~[spring-context-5.2.15.RELEASE.jar!/:5.2.15.RELEASE] at java.util.ArrayList.forEach(ArrayList.java:1259) ~[?:1.8.0_262] at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGroupingHandler.processGroupImports(ConfigurationClassParser.java:809) ~[spring-context-5.2.15.RELEASE.jar!/:5.2.15.RELEASE] at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorHandler.process(ConfigurationClassParser.java:780) ~[spring-context-5.2.15.RELEASE.jar!/:5.2.15.RELEASE] at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:193) ~[spring-context-5.2.15.RELEASE.jar!/:5.2.15.RELEASE] at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:320) ~[spring-context-5.2.15.RELEASE.jar!/:5.2.15.RELEASE] at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:237) ~[spring-context-5.2.15.RELEASE.jar!/:5.2.15.RELEASE] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:280) ~[spring-context-5.2.15.RELEASE.jar!/:5.2.15.RELEASE] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:96) ~[spring-context-5.2.15.RELEASE.jar!/:5.2.15.RELEASE] at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:707) ~[spring-context-5.2.15.RELEASE.jar!/:5.2.15.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:533) ~[spring-context-5.2.15.RELEASE.jar!/:5.2.15.RELEASE] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141) ~[spring-boot-2.2.10.RELEASE.jar!/:2.2.10.RELEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) [spring-boot-2.2.10.RELEASE.jar!/:2.2.10.RELEASE] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) [spring-boot-2.2.10.RELEASE.jar!/:2.2.10.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-2.2.10.RELEASE.jar!/:2.2.10.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) [spring-boot-2.2.10.RELEASE.jar!/:2.2.10.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) [spring-boot-2.2.10.RELEASE.jar!/:2.2.10.RELEASE] at com.waylau.boot.Application.main(Application.java:21) [classes!/:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_262] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_262] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_262] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_262] at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) [ty-engine-app-1.0-SNAPSHOT.jar:?] at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) [ty-engine-app-1.0-SNAPSHOT.jar:?] at org.springframework.boot.loader.Launcher.launch(Launcher.java:51) [ty-engine-app-1.0-SNAPSHOT.jar:?] at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52) [ty-engine-app-1.0-SNAPSHOT.jar:?]Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'a' for bean class [ com.waylau.core.pegging.service.impl.a] conflicts with existing, non-compatible bean definition of same name and class [ com.waylau.base.productstructure.service.impl.a] at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.checkCandidate(ClassPathBeanDefinitionScanner.java:349) ~[spring-context-5.2.15.RELEASE.jar!/:5.2.15.RELEASE] at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:287) ~[spring-context-5.2.15.RELEASE.jar!/:5.2.15.RELEASE] at org.springframework.context.annotation.ComponentScanAnnotationParser.parse(ComponentScanAnnotationParser.java:132) ~[spring-context-5.2.15.RELEASE.jar!/:5.2.15.RELEASE] at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:296) ~[spring-context-5.2.15.RELEASE.jar!/:5.2.15.RELEASE] at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:250) ~[spring-context-5.2.15.RELEASE.jar!/:5.2.15.RELEASE] at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:600) ~[spring-context-5.2.15.RELEASE.jar!/:5.2.15.RELEASE] ... 27 more
问题原因
类被混淆,生成了相同的bean的名称了(都是“a”)。
解决方案
保持类名不被混淆
<!--保持类名不被混淆--><option>-keepnames class com.waylau.core.pegging.service.impl.SimulationService, com.waylau.core.supply.service.impl.SupplyDateService</option
或者在类上指定bean的唯一名称。
1
2
浏览2057 编辑于2021-12-17 07:27未知归属地
全部评论
最多点赞
最新发布
最早发布
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
- 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
- 如您发布的内容为转载内容,请注明内容来源。
我要发帖子
目录 收起
问题:Bean定义冲突异常
问题原因
解决方案
了解社区公约,与您携手共创和谐专业的开发者社区。






































苏公安网备 32011402010933号