gpt4 book ai didi

java - 5.2 中的 spring AnnotationUtils 不再搜索父类?

转载 作者:太空宇宙 更新时间:2023-11-04 09:18:35 24 4
gpt4 key购买 nike

我在 springframework 中发现了 5.1.x 和 5.2.x 之间的差异,我试图弄清楚这是我所做的事情还是回归。

我有一个 bean 扫描器,它将在上下文中搜索已弃用的内容,并且在 spring 5.2.x 中,它似乎不再扫描父类中的注释。我要么做错了什么,要么存在错误,要么需要更新 javadoc。

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>Zminimal</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<!-- <version>5.1.10.RELEASE</version> -->
<version>5.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
package com.example;

import static org.junit.Assert.assertTrue;

import org.junit.Test;
import org.springframework.core.annotation.AnnotationUtils;

public class AnnotationTest {

@Test
public void isClassDeprecated_DirectlyOnclass() {
assertTrue("should mark as deprecated", isClassDeprecated(TestDepricatedClass.class));
}

@Test
public void isClassDeprecated_OnAbstractclass() {
assertTrue("should mark as deprecated", isClassDeprecated(TestDepricatedAbstractClass.class));
}

@Test
public void isClassDeprecated_OnSuperclass() {
assertTrue("should mark as deprecated", isClassDeprecated(SubClass.class));
}

/* package */boolean isClassDeprecated(Class<?> clazz) {
return null != AnnotationUtils.findAnnotation(clazz, Deprecated.class);
}

/** Class used for testing. */
@Deprecated
public static class TestDepricatedClass {
}

/** Class used for testing. */
@Deprecated
public abstract static class TestDepricatedAbstractClass {
}

/** Class used for testing. */
public static class SubClass extends SuperClass {
}

/** Class used for testing. */
@Deprecated
public static class SuperClass {
}
}

感谢您的帮助。

最佳答案

这似乎是一个回归,目前计划在 5.2.2 中修复 https://github.com/spring-projects/spring-framework/issues/23929

关于java - 5.2 中的 spring AnnotationUtils 不再搜索父类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58649600/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com