java - 如果未设置 Activity 配置文件,则退出

标签 java spring spring-boot

如果没有 Activity 配置文件,如何在执行任何操作(尤其是 Bean 创建)之前退出应用程序?

我已经使用这样的配置完成了此操作:

@Profile("default")
@Configuration
public class NoActiveProfileKiller {
    public NoActiveProfileKiller() {
        throw new UnsupportedOperationException("No active profile is selected");
    }
}

但这至少执行 JPA 操作。

最佳答案

我已经通过使用监听器的下一个方法完成了此操作:

@SpringBootApplication
public class MyApplication implements ApplicationListener<ApplicationEnvironmentPreparedEvent> {
    private static final Logger LOGGER = LoggerFactory.getLogger(MyApplication.class);

    public static void main(String[] args) {
        new SpringApplicationBuilder()
            .listeners(new MyApplication())
            .sources(MyApplication.class)
            .run(args);
    }

    @Override
    public void onApplicationEvent(final ApplicationEnvironmentPreparedEvent event) {
        if (event.getEnvironment().getActiveProfiles().length == 0) {
            LOGGER.error("No active profile is set. Will terminate");
            System.exit(1);
        }
    }
}

关于java - 如果未设置 Activity 配置文件,则退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47636583/

相关文章:

java - 获取 gwt 中的时区

java - 循环无法启动

java - 我可以组合两个 DefaultListModel 吗?

java - 日期正在以时间格式合并

java - 如何从配置类实用地设置 Spring Active Profiles?

java - Spring Boot + Ionic 应用程序身份验证

java - SpringBoot从2.1.1升级到2.1.2报错

java - Spring Boot 使用 ssl 连接到 mongodb(对等证书验证失败)

java - Spring Boot 中如何区分角色? (Web 与调度程序等..)

java - 如何在数据库中使用 hibernate 和 spring mvc 获取一些 utf-8 字符?