SpringBoot项目启动报错解决记录

摘要:
解决方案有两个:1.像上面说的那个,给配置文件添加一个spring.main.allow-bean-definition-overriding=true就可以了。上面的日志输出已经说了是BeanDefinitionOverrideException抛出来的JpaRepositoryFactoryBean与JdbcRepositoryFactoryBean冲突,也就是说这两个BeanFactory都尝试把xxTmpRepository进行处理,后面处理的那个就报错了。不让后面那处理就可以了,我这里这个xxTmpRepository是JPA的repository,按理说jdbcRepository不应该去管这个,谁知道咋回事儿呢?反正就是jdbc越权了,需要限制一下下。把xxTmpRepository所在的目录不让jdbcRepository扫描到。

2020-06-29 11:14:37,181 - [WARN] o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.support.BeanDefinitionOverrideException: Invalid bean definition with name 'xxTmpRepository' defined in null: Cannot register bean definition [Root bean: class [org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] for bean 'xxTmpRepository': There is already [Root bean: class [org.springframework.data.jdbc.repository.support.JdbcRepositoryFactoryBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] bound.
2020-06-29 11:14:37,196 - [ERROR] o.s.b.d.LoggingFailureAnalysisReporter -

***************************
APPLICATION FAILED TO START
***************************

Description:

The bean 'xxTmpRepository', defined in null, could not be registered. A bean with that name has already been defined in null and overriding is disabled.

Action:

Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true

上面是启动报错的日志输出,总之就是说有一个类声明已经存在了,你又没说可以覆盖,所以我就报错咯。

解决方案有两个:

1.像上面说的那个,给配置文件添加一个spring.main.allow-bean-definition-overriding=true就可以了。

2.找到为啥会重复,然后把重复的去掉。

上面的日志输出已经说了是BeanDefinitionOverrideException抛出来的 JpaRepositoryFactoryBean与JdbcRepositoryFactoryBean冲突,也就是说这两个 BeanFactory都尝试把xxTmpRepository进行处理,后面处理的那个就报错了。

不让后面那处理就可以了,我这里这个xxTmpRepository是 JPA的 repository,按理说 jdbcRepository不应该去管这个,谁知道咋回事儿呢?反正就是 jdbc越权了,需要限制一下下。

安排!把xxTmpRepository 所在的目录不让 jdbcRepository扫描到。

@EnableJdbcRepositories(excludeFilters ={
        @ComponentScan.Filter(
                type =FilterType.ASPECTJ,
                pattern = "com.xx.xxx.repotory.*")
})

把这个加到主启动类上就可以了。

完结。

免责声明:文章转载自《SpringBoot项目启动报错解决记录》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇玩家福音:10款最佳Linux免费游戏(九)WebGIS中的矢量查询(针对AGS和GeoServer)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

springMVC ——Controller配置方式

一.手动配置方式(开发中主要用注解方式,可以直接看标题二:注解方式)1.web.xml中DispatcherServlet控制器的的配置 SpringMVC也是一种基于请求驱动的WEB框架,并且使用了前端控制器的设计模式。前端控制器就是DispatcherServlet控制器,只要满足web.xml文件中的【url-pattern】的规则,这个请求就会交给...

Spring MVC-学习笔记(4)数据绑定流程

1、请求数据在到达处理方法前这段时间。 spring MVC还会做请求信息转换、数据转换、数据格式化、数据校验。 2、数据转换 1》ConversionService: Spring类型转换体系的核心接口,在其中定义了一下4个方法: 可以在spring上下文中注册一个ConversionServiceFactoryBean,用以定义一个Conversio...

第15章-使用远程服务

1 Spring远程调用概览 图15.1 第三方客户端能够远程调用Spittr的服务,从而实现与Spittr应用交互 其他应用与Spittr之间的会话开始于客户端应用的一个远程过程调用(remote procedure call,RPC)。从表面上看,RPC类似于调用一个本地对象的一个方法。这两者都是同步操作,会阻塞调用代码的执行,直到被调用的过程执行完...

Android学习分享:执行某ViewGroup的动画时,子控件太多导致动画执行卡顿的问题

最近在项目中遇到一个问题,我有一个LinearLayout,里面装载了许多ImageView控件,ImageView控件显示着自己的图片,这个LinearLayout支持双指缩放,缩放采用ScaleAnimation来实现,但是但是在缩放过程中,屏幕十分卡顿,缩放效果根本没有跟上手指的缩放动作。后来在Google上查了一番,查到一个API,叫setAnim...

MySQL设置主键字段自增从0001开始

DROP TABLE IF EXISTS `fi_kj_log_test`; CREATE TABLE `fi_kj_log_test` ( `id` bigint(4) unsigned zerofill NOT NULL AUTO_INCREMENT, `ts` bigint(20) DEFAULT NULL, `success` tiny...

java生成解析xml的另外两种方法JAXB

   JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。从另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java表示...