即使未在 Spring 引导配置文件中指定,方法也会在 Spring 引导中加载

Method loading in Spring Boot even though it's not specified in Spring Boot Profile

我不想在我的本地 Spring 配置文件中加载一个方法。方法是

@Profile("prod")
@Scheduled(initialDelay = 1000, fixedDelay = 21600000)
public void updateHackalistHackathonData() {
...
}

我在同一位置 src/java/resources 创建了 application.properties'application-local.properties'application-prod.properties 文件。在application.properties中,我提到了spring.profiles.active=local

但是,这个预定的方法仍然会执行。我该如何阻止它?

您需要在 class(bean)定义而不是方法本身上添加 @Profile("prod") 注释。例如:

@Component
@Profile("prod")
public class HackatonScheduler{
    @Scheduled(initialDelay = 1000, fixedDelay = 21600000)
    public void updateHackalistHackathonData() {
        ...
    }
}