Java @StepScope不适用于SpringBoot中的@ConstructorBinding

Java @StepScope不适用于SpringBoot中的@ConstructorBinding,java,spring,spring-boot,yaml,spring-bean,Java,Spring,Spring Boot,Yaml,Spring Bean,我试图在没有setter的情况下创建一个@ConfigurationPropertiesbean,所以我使用了@ConstructorBinding。让我们将这个类称为properties froml.java 这很好,bean完全是由yml文件中的属性创建的 configuration类具有必要的设置: @Configuration @ConfigurationPropertiesScan("com.my.package") // this is where Propert

我试图在没有setter的情况下创建一个
@ConfigurationProperties
bean,所以我使用了
@ConstructorBinding
。让我们将这个类称为
properties froml.java

这很好,bean完全是由
yml
文件中的属性创建的

configuration类具有必要的设置:

@Configuration
@ConfigurationPropertiesScan("com.my.package") // this is where PropertiesFromYml.java is stored
public class MyConfig
我想
@StepScope
添加到该
属性froml.java
,因为我的SpringBoot应用程序将运行计划的批处理作业,所以我不想启动该类,只想在作业需要时启动


但是:不幸的是,bean总是在启动时创建的。我想这是因为MyConfig.java类上的
@ConfigurationPropertiesScan
注释。但是我如何告诉您仅在必要时创建bean,如使用@StepScope?

配置将在应用程序开始时创建。相反,你可能想做的是把你的班级分成2个小组。实际配置部分和计划部分:
SchedularConfiguration
SchedularComponent
。然后将配置注入组件

@StepScope
@组成部分
类调度组件{
@自动连线
调度配置配置;
}
这将允许您拥有所需的范围。通常,您不会有一个完整的其他类来配置组件(但您的需求可能会有所不同),而是直接使用
@Value
注释来选择所需的应用程序属性:
@Value(${schedular.cron}”)