java - 异常: org. springframework.beans.factory.BeanCurrentlyInCreationException

标签 java spring spring-boot

我想在抽象类上有计划注释,以便子类不需要有注释。抽象类中有类似的东西

@EnableScheduling
@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

public abstract class AbstractTestClass {

    @Bean
    public String getDelay() {
        return "1000";
    }

    @Scheduled(fixedRateString = "#{@getDelay}")
    public void callScheduledMethod() {
        getZeroBytesFile();
    }

    public abstract void getZeroBytesFile();
}

@Component
public class ChildClass extends AbstractTestClass {

    @Override
    public String getDelay() {
        return "5000";
    }

    @Override
    public void getZeroBytesFile() {
        System.out.println("called");
    }

}

@Component
public class OtherClass {

    // This bean initialisation throws error
    @AutoWired ChildClass childClass;

}

但是它不起作用并抛出此异常


org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'getDelay': Requested bean is currently in creation: Is there an unresolvable circular reference?

任何指针都会有帮助。提前致谢

最佳答案

这是实现这一目标的技巧:

@EnableScheduling
@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

public abstract class AbstractTestClass {

    @Bean
    public String getDelay() {
        return "1000";
    }

    @Scheduled(fixedRateString = "#{@getDelay}")
    public void callScheduledMethod() {
        getZeroBytesFile();
    }

    public abstract void getZeroBytesFile();
}

@Component
public class ChildClass extends AbstractTestClass {

    @Override
    public String getDelay() {
        return "5000";
    }

    @Override
    public void getZeroBytesFile() {
        System.out.println("called");
    }

}

关于java - 异常: org. springframework.beans.factory.BeanCurrentlyInCreationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59701817/

相关文章:

java - @XmlTransient 用于序列化但不用于反序列化?

spring - 将 EJB 3 注入(inject) Spring Bean

java - 使用 spring-data-mongodb 进行审计

java - ElasticSearch SpringBoot+Spring Data : java. lang.IllegalStateException:在接口(interface)上找不到合适的构造函数

java - 多线程在完成处理之前返回数字(JAVA)

java - 在 Amazon SQS 上获取 "peer not authenticated"异常

java - ubuntu 上的开普勒 glassfish

Spring 3.1 @Cacheable - 方法仍然执行

java - Spring 延迟加载 - 加载一个 bean 会加载该类的所有 @Lazy bean

java - 运行 mvn liquibase :diff to update database 时发现多个目录匹配架构