Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 5.2中的spring注释工具不再搜索父类了?_Java_Spring - Fatal编程技术网

Java 5.2中的spring注释工具不再搜索父类了?

Java 5.2中的spring注释工具不再搜索父类了?,java,spring,Java,Spring,我在springframework中发现了5.1.x和5.2.x之间的差异,我试图弄清楚这是我做的还是一种回归 我有一个bean扫描器,它将在不推荐使用的上下文中搜索内容,而Spring5.2.x似乎不再扫描父类中的注释。我要么做错了什么,要么有bug,要么javadocs需要更新 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs

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

我有一个bean扫描器,它将在不推荐使用的上下文中搜索内容,而Spring5.2.x似乎不再扫描父类中的注释。我要么做错了什么,要么有bug,要么javadocs需要更新

<?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>

4.0.0
com.example
最小
0.0.1-快照
罐子
1.8
1.8
org.springframework
弹簧芯
5.2.0.1发布
朱尼特
朱尼特
4.12
测试
package.com.example;
导入静态org.junit.Assert.assertTrue;
导入org.junit.Test;
导入org.springframework.core.annotation.AnnotationUtils;
公共类注释测试{
@试验
public void已弃用\u DirectlyOnclass(){
assertTrue(“应标记为已弃用”,isClassDeprecated(TestDepricatedClass.class));
}
@试验
public void已弃用\u OnAbstractclass(){
assertTrue(“应标记为已弃用”,isClassDeprecated(TestDepricatedAbstractClass.class));
}
@试验
public void已弃用\u OnSuperclass(){
assertTrue(“应标记为已弃用”,isClassDeprecated(SubClass.class));
}
/*包*/boolean已弃用(类clazz){
返回null!=AnnotationUtils.findAnnotation(clazz,弃用的.class);
}
/**用于测试的类*/
@不赞成
公共静态类TestDebricatedClass{
}
/**用于测试的类*/
@不赞成
公共抽象静态类TestDepricatedAbstractClass{
}
/**用于测试的类*/
公共静态类子类扩展了超类{
}
/**用于测试的类*/
@不赞成
公共静态类超类{
}
}

感谢您的帮助。

这似乎是一个回归,目前计划在5.2.2中修复

这似乎是一种回归,目前计划在5.2.2中修复

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 {
    }
}