Java Spring-如何设置环境?

时间:2018-09-20 14:48:58

标签: java spring spring-boot paypal-rest-sdk

我正在使用Java Spring构建一个应用程序,我想在我的应用程序开始处理请求之前运行一些环境设置代码。在此特定示例中,我使用的是PayPal Rest SDK,并且我想为我的应用程序设置一些通知webhook。出于明显的原因,我不想在应用程序启动后调用端点来设置webhooks,因此将其放入控制器中可能不是一个好主意,因此我需要一些Spring配置信息来进行设置我不能把它放在main()中。我同意(实际上,我甚至更希望)如果无法创建webhooks(如果需要考虑的约束)导致应用程序崩溃。

执行此操作的好方法是什么?

谢谢。

1 个答案:

答案 0 :(得分:0)

  

并且我需要一些Spring配置信息来进行设置,因此无法将其放在main()

以上说法不正确。您可以在主目录中访问Spring配置。请考虑以下示例。

@SpringBootApplication
public class Main {

    @Autowire
    private MyService service;

    public static void main(String[] args) {
        ConfigurableApplicationContext ctx = SpringApplication.run(InterviewHqApplication.class, args);
        ctx.getBean(Main.class).setup();
    }

    private void setup() {
        service.doStuff();
    }
}

在此示例中,在加载应用程序上下文之后调用setup()方法。

实际上,有几种方法可以完成您尝试做的事情。 Spring Boot还支持使用ApplicationRunnerCommandLineRunner,它们在加载应用程序上下文之后都调用run方法,这是我上面显示的替代方法。您还可以侦听ApplicationReadyEvent,并且可以调用@PostConstruct在初始化bean之后对bean执行一些特定的配置。