Spring Boot - 以编程方式自定义SpringApplication类的任何其他方法吗?

时间:2015-03-02 21:13:04

标签: spring spring-boot

我想添加Banner接口的实现,而无需开发人员在每个应用程序中自定义SpringApplication。有没有其他方法可以获得对这个类的引用,因为SpringBoot正在启动,这将允许我注入我自己的Banner实现?我知道banner.txt定制,并希望做更多。

1 个答案:

答案 0 :(得分:1)

您可以按照以下步骤设置自己的横幅广告实施:

创建横幅广告实施:

class MySpringBootBanner implements Banner {
    @Override
    public void printBanner(Environment environment, Class<?> sourceClass,
            PrintStream printStream) {
        // Implement your banner
    }
}

扩展SpringApplication

public class MySpringApplication extends SpringApplication {
    private Banner banner;

    public MySpringApplication(ResourceLoader resourceLoader, Object... sources) {
        super(resourceLoader, sources);
        super.setBanner(new MySpringBootBanner());
    }

    public MySpringApplication(Object... sources) {
        super(sources);
        super.setBanner(new MySpringBootBanner());
    }

    public void setBanner(Banner yourBanner) {
        this.banner = yourBanner;
    }
}

启动应用程序:所有应用程序都可以使用MySpringApplication启动Spring启动应用程序

MySpringApplication app = new MySpringApplication(Application.class);
app.run();