Java 启动spring引导应用程序时出现StackOverflower错误

Java 启动spring引导应用程序时出现StackOverflower错误,java,spring,maven,spring-boot,spring-data-commons,Java,Spring,Maven,Spring Boot,Spring Data Commons,在我的SpringBootMaven项目中,其中一个依赖项是提供SpringDataCommons。这会扫描我项目中的类并抛出StackOverflow错误。它不喜欢的课程如下: class TreeNode<T> { private T someData = null; private List<TreeNode<T>> children = new ArrayList<>(); } 类树节点{ 私有T someData=nul

在我的SpringBootMaven项目中,其中一个依赖项是提供
SpringDataCommons
。这会扫描我项目中的类并抛出StackOverflow错误。它不喜欢的课程如下:

class TreeNode<T> {
    private T someData = null;
    private List<TreeNode<T>> children = new ArrayList<>();
}
类树节点{
私有T someData=null;
private List children=new ArrayList();
}
我想它正在尝试一些字段上的反射机制,但由于一些不确定的循环而失败。 春季启动应用程序启动期间的日志

Caused by: java.lang.StackOverflowError
    at java.util.AbstractMap.hashCode(AbstractMap.java:528) ~[?:1.8.0_121]
    at org.springframework.util.ObjectUtils.nullSafeHashCode(ObjectUtils.java:396) ~[spring-core-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.springframework.core.ResolvableType.calculateHashCode(ResolvableType.java:865) ~[spring-core-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.springframework.core.ResolvableType.<init>(ResolvableType.java:140) ~[spring-core-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.springframework.core.ResolvableType.forType(ResolvableType.java:1349) ~[spring-core-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.springframework.core.ResolvableType.forType(ResolvableType.java:1320) ~[spring-core-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.springframework.core.GenericTypeResolver.resolveType(GenericTypeResolver.java:260) ~[spring-core-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.springframework.data.util.TypeDiscoverer.resolveType(TypeDiscoverer.java:186) ~[spring-data-commons-1.13.3.RELEASE.jar:?]
    at org.springframework.data.util.TypeDiscoverer.createInfo(TypeDiscoverer.java:128) ~[spring-data-commons-1.13.3.RELEASE.jar:?]
    at org.springframework.data.util.ParentTypeAwareTypeInformation.createInfo(ParentTypeAwareTypeInformation.java:73) ~[spring-data-commons-1.13.3.RELEASE.jar:?]
    at org.springframework.data.util.TypeDiscoverer.getPropertyInformation(TypeDiscoverer.java:246) ~[spring-data-commons-1.13.3.RELEASE.jar:?]
    at org.springframework.data.util.TypeDiscoverer.getProperty(TypeDiscoverer.java:221) ~[spring-data-commons-1.13.3.RELEASE.jar:?]
    at org.springframework.data.util.ParentTypeAwareTypeInformation.getProperty(ParentTypeAwareTypeInformation.java:28) ~[spring-data-commons-1.13.3.RELEASE.jar:?]
    at org.springframework.data.mapping.model.AbstractPersistentProperty.<init>(AbstractPersistentProperty.java:66) ~[spring-data-commons-1.13.3.RELEASE.jar:?]
    at org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.<init>(AnnotationBasedPersistentProperty.java:68) ~[spring-data-commons-1.13.3.RELEASE.jar:?]
    at org.springframework.data.neo4j.mapping.Neo4jPersistentProperty.<init>(Neo4jPersistentProperty.java:74) ~[spring-data-neo4j-4.2.3.RELEASE.jar:?]
    at org.springframework.data.neo4j.mapping.Neo4jMappingContext.createPersistentProperty(Neo4jMappingContext.java:95) ~[spring-data-neo4j-4.2.3.RELEASE.jar:?]
    at org.springframework.data.neo4j.mapping.Neo4jMappingContext.createPersistentProperty(Neo4jMappingContext.java:42) ~[spring-data-neo4j-4.2.3.RELEASE.jar:?]
    at org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.createAndRegisterProperty(AbstractMappingContext.java:487) ~[spring-data-commons-1.13.3.RELEASE.jar:?]
    at org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.doWith(AbstractMappingContext.java:465) ~[spring-data-commons-1.13.3.RELEASE.jar:?]
    at org.springframework.util.ReflectionUtils.doWithFields(ReflectionUtils.java:693) ~[spring-core-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.springframework.data.mapping.context.AbstractMappingContext.addPersistentEntity(AbstractMappingContext.java:329) ~[spring-data-commons-1.13.3.RELEASE.jar:?]
    at org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.createAndRegisterProperty(AbstractMappingContext.java:508) ~[spring-data-commons-1.13.3.RELEASE.jar:?]
    at org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.doWith(AbstractMappingContext.java:465) ~[spring-data-commons-1.13.3.RELEASE.jar:?]
    at org.springframework.util.ReflectionUtils.doWithFields(ReflectionUtils.java:693) ~[spring-core-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.springframework.data.mapping.context.AbstractMappingContext.addPersistentEntity(AbstractMappingContext.java:329) ~[spring-data-commons-1.13.3.RELEASE.jar:?]
    at org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.createAndRegisterProperty(AbstractMappingContext.java:508) ~[spring-data-commons-1.13.3.RELEASE.jar:?]
    at org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.doWith(AbstractMappingContext.java:465) ~[spring-data-common]s-1.13.3.RELEASE.jar:?
原因:java.lang.StackOverflower错误
hashCode(AbstractMap.java:528)~[?:1.8.0_121]
在org.springframework.util.ObjectUtils.nullSafeHashCode(ObjectUtils.java:396)~[spring-core-4.3.8.RELEASE.jar:4.3.8.RELEASE]
在org.springframework.core.ResolvableType.calculateHashCode(ResolvableType.java:865)~[spring-core-4.3.8.RELEASE.jar:4.3.8.RELEASE]
在org.springframework.core.ResolvableType.(ResolvableType.java:140)~[spring-core-4.3.8.RELEASE.jar:4.3.8.RELEASE]
在org.springframework.core.ResolvableType.forType(ResolvableType.java:1349)~[spring-core-4.3.8.RELEASE.jar:4.3.8.RELEASE]
在org.springframework.core.ResolvableType.forType(ResolvableType.java:1320)~[spring-core-4.3.8.RELEASE.jar:4.3.8.RELEASE]
在org.springframework.core.GenericTypeResolver.resolveType(GenericTypeResolver.java:260)~[spring-core-4.3.8.RELEASE.jar:4.3.8.RELEASE]
在org.springframework.data.util.TypeDiscoverer.resolveType(TypeDiscoverer.java:186)~[spring-data-commons-1.13.3.RELEASE.jar:?]
在org.springframework.data.util.TypeDiscoverer.createInfo(TypeDiscoverer.java:128)~[spring-data-commons-1.13.3.RELEASE.jar:?]
在org.springframework.data.util.ParentTypeAwareTypeInformation.createInfo(ParentTypeAwareTypeInformation.java:73)~[spring-data-commons-1.13.3.RELEASE.jar:?]
在org.springframework.data.util.TypeDiscoverer.getPropertyInformation(TypeDiscoverer.java:246)~[spring-data-commons-1.13.3.RELEASE.jar:?]
在org.springframework.data.util.TypeDiscoverer.getProperty(TypeDiscoverer.java:221)~[spring-data-commons-1.13.3.RELEASE.jar:?]
在org.springframework.data.util.ParentTypeAwareTypeInformation.getProperty(ParentTypeAwareTypeInformation.java:28)~[spring-data-commons-1.13.3.RELEASE.jar:?]
位于org.springframework.data.mapping.model.AbstractPersistentProperty.(AbstractPersistentProperty.java:66)~[spring-data-commons-1.13.3.RELEASE.jar:?]
位于org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.(AnnotationBasedPersistentProperty.java:68)~[spring-data-commons-1.13.3.RELEASE.jar:?]
在org.springframework.data.neo4j.mapping.Neo4jPersistentProperty.(Neo4jPersistentProperty.java:74)~[spring-data-neo4j-4.2.3.RELEASE.jar:?]
在org.springframework.data.neo4j.mapping.Neo4jMappingContext.createPersistentProperty(Neo4jMappingContext.java:95)~[spring-data-neo4j-4.2.3.RELEASE.jar:?]
在org.springframework.data.neo4j.mapping.Neo4jMappingContext.createPersistentProperty(Neo4jMappingContext.java:42)~[spring-data-neo4j-4.2.3.RELEASE.jar:?]
在org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.CreateAndRegistrProperty(AbstractMappingContext.java:487)~[spring-data-commons-1.13.3.RELEASE.jar:?]
在org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.doWith(AbstractMappingContext.java:465)~[spring-data-commons-1.13.3.RELEASE.jar:?]
在org.springframework.util.ReflectionUtils.doWithFields(ReflectionUtils.java:693)~[spring-core-4.3.8.RELEASE.jar:4.3.8.RELEASE]
在org.springframework.data.mapping.context.AbstractMappingContext.addPersistentEntity(AbstractMappingContext.java:329)~[spring-data-commons-1.13.3.RELEASE.jar:?]
在org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.CreateAndRegistrProperty(AbstractMappingContext.java:508)~[spring-data-commons-1.13.3.RELEASE.jar:?]
在org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.doWith(AbstractMappingContext.java:465)~[spring-data-commons-1.13.3.RELEASE.jar:?]
在org.springframework.util.ReflectionUtils.doWithFields(ReflectionUtils.java:693)~[spring-core-4.3.8.RELEASE.jar:4.3.8.RELEASE]
在org.springframework.data.mapping.context.AbstractMappingContext.addPersistentEntity(AbstractMappingContext.java:329)~[spring-data-commons-1.13.3.RELEASE.jar:?]
在org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.CreateAndRegistrProperty(AbstractMappingContext.java:508)~[spring-data-commons-1.13.3.RELEASE.jar:?]
在org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.doWith(AbstractMappingContext.java:465)~[spring数据公用]s-1.13.3.RELEASE.jar:?
我不想让它扫描这个类(或者任何类似的类)。我只是删除了
spring数据共用项
,但没有成功。在我的应用程序的其他部分中,它用于注入一些会话对象

有什么解决这个问题的建议吗

我不是spring数据方面的专家。但是已经使用spring很长一段时间了


干杯

这个错误非常适合这个网站,哈哈哈哈!!!这个
TreeNode
类属于您的项目,对吗?它是否在从Spring扫描的包中?如果您将它移动到另一个未从
Spring
获取的包中,这难道不能解决问题吗?@jmhostalet haha。真的@是的,这门课属于我的项目。我也试过了,从名为“dao”的包移动到“foo”只是为了验证。我想现在它正在到处扫描。我不知道如何配置它(SpringDataCommons)以排除特定目录。@brownfox
SpringBoot
默认情况下从
@SpringBootApplication
类所在的包及其所有子包中扫描。放置
树节点<