最近走过的坑 :slf4j 多个实现 hibernate 类型转换异常 bean依赖问题
Posted stdpain
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最近走过的坑 :slf4j 多个实现 hibernate 类型转换异常 bean依赖问题相关的知识,希望对你有一定的参考价值。
最近走过的坑
slf4j 多个实现
主要是maven依赖中存在多个slf4j的实现类,在引入的依赖中排除对应的依赖就可以
<dependency>
<groupId>xxxxxx</groupId>
<artifactId>xxxxxx</artifactId>
<version>1.0.0</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
hibernate 在启动的时候死锁
主要排查: 1.账号密码这些问题 2.有的时候抛一些关于c3p0的异常,把这个c3p0换一个比较新的就好了
<!-- https://mvnrepository.com/artifact/c3p0/c3p0 -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
hibernate 类型转换异常
描述:在spring boot中手动配置hibernate,hibernate在返回的时候可能会抛出一个类型转换异常,比如User不能转换为User
去掉 spring-boot-dev 这个依赖就好了,原因未知(我猜热部署的时候可能是因为返回的是一个代理,以后再研究)
bean依赖问题
有的时候一个bean依赖另一个bean(最简单的情况就是,一个bean在构造方法中需要调用另一个bean,这个时候可能有些bean没有初始化)
@Service
@DependsOn(value = "mysqlClient")
public class XXXServiceImp implements XXXService
解决方案:加一个注解即可@DependsOn(value = "beanname")
要注意的是,不要有循环依赖比如说 a->b b->c c->a 这种的
另一种解决方案就是构造方法注入在给构造方法加一个自动注入的注解
@Autowired
public XXXServiceImp(XXXDao xxxDao)
以上是关于最近走过的坑 :slf4j 多个实现 hibernate 类型转换异常 bean依赖问题的主要内容,如果未能解决你的问题,请参考以下文章