package org.zalando.catwatch.backend; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.ApplicationContext; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import static com.google.common.base.Joiner.on; import static java.util.Arrays.stream; @Component @ConditionalOnProperty("debug") public class DebugBean { private final Environment env; private final ApplicationContext context; @Autowired public DebugBean(Environment env, ApplicationContext context) { this.env = env; this.context = context; } @PostConstruct public void postConstruct() { System.out.println("================== " + DebugBean.class.getName() + "================================="); System.out.println("active profiles: " + on(",").join(env.getActiveProfiles())); System.out.println("default profiles: " + on(",").join(env.getDefaultProfiles())); System.out .println("spring.database.driverClassName: " + env.getProperty("spring.database.driverClassName")); System.out.println("spring.jpa.hibernate.ddl-auto: " + env.getProperty("spring.jpa.hibernate.ddl-auto")); System.out.println("all beans:"); stream(context.getBeanDefinitionNames()).forEach(System.out::println); System.out.println("================== " + DebugBean.class.getName() + "================================="); } }