zoukankan      html  css  js  c++  java
  • SpringApplication及banner的配置

    配置SpringApplication

             如果SpringApplication无法满足要求,你可以自己创建一个局部实例,然后对其进行设置:

    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(MySpringConfiguration.class);
        //关闭Banner打印
        app.setBannerMode(Banner.Mode.OFF);
        //添加监听器
        app.addListeners(new MyListener());
        ...
        app.run(args);
    }
    • 1

             SpringApplication的相关配置将会被@Configuration注解的类,XML配置文件,以及Spring扫描的包引用。更详细的配置选项,参见SpringApplication Javadoc。

             你也可以通过SpringApplicationBuilder来对SpringApplication的属性进行配置,这样的结构更有层次感。SpringApplicationBuilder为构建 SpringApplicationApplicationContext 实例提供了一套便利的流式API:

    new SpringApplicationBuilder()
            .sources(Parent.class)
            .child(Application.class)
            .bannerMode(Banner.Mode.OFF)
            .listeners(new MyListener())
            ...
            .run(args);

             SpringApplication将会根据需要创建一个ApplicationContext,默认情况下,如果是非web应用,则会创建一个AnnotationConfigApplicationContext上下文,如果是web应用,则会创建一个AnnotationConfigEmbeddedWebApplicationContext上下文。当然,你也可以通过setWebEnvironment(boolean webEnvironment)来覆盖默认的设置。

    ApplicationRunner 和 CommandLineRunner

             如果你希望在SpringApplication启动之前完成某些操作,你可以通过实现ApplicationRunner或者CommandLineRunner接口来实现。这两个接口提供了一个run方法,会在SpringApplication.run(…)完成之前被调用。适用于系统初始化配置的加载,启动检查等等。

    import org.springframework.boot.*
    import org.springframework.stereotype.*
    
    @Component
    public class MyBean implements CommandLineRunner {
    
        public void run(String... args) {
            // Do something...
        }
    
    }

             如果有多个CommandLineRunner或者ApplicationRunner的实现,并且这些都需要按照一定的顺序来执行,你可以通过实现org.springframework.core.Ordered接口或者使用org.springframework.core.annotation.Order注解来设置这些的执行顺序。

    配置Banner

             你可以通过添加一个banner.txt文件到你的classpath路径下,来改变在启动的时候打印的banner信息,或者通过设置banner.location属性来设置该文件的位置,通过banner.charset来设置文件的编码,你也可以添加banner.gif,banner.jpg, `banner.png图片文件到classpath,或者通过设置banner.image.location属性来作为banner信息,这些图片会被转换为有艺术感的ASCII,并且打印在文本的顶部。banner.txt中可以设置如下的占位符:

    变量描述
    ${application.version} The version number of your application as declared in MANIFEST.MF. For example Implementation-Version: 1.0 is printed as 1.0.
    ${application.formatted-version} The version number of your application as declared in MANIFEST.MF formatted for display (surrounded with brackets and prefixed with v). For example (v1.0).
    ${spring-boot.version} The Spring Boot version that you are using. For example 1.4.1.RELEASE.
    ${spring-boot.formatted-version} The Spring Boot version that you are using formatted for display (surrounded with brackets and prefixed with v). For example (v1.4.1.RELEASE).
    ${Ansi.NAME} (or ${AnsiColor.NAME}, ${AnsiBackground.NAME}, ${AnsiStyle.NAME}) Where NAME is the name of an ANSI escape code. See AnsiPropertySource for details.
    ${application.title} The title of your application as declared in MANIFEST.MF. For example Implementation-Title: MyApp is printed as MyApp.

             可以通过设置spring.main.banner-mode属性来控制输出,如下,在application.properties文件中添加如下属性,将会覆盖SpringApplication中的默认配置:

    # 打印到控制台
    spring.main.banner-mode=console
    # 打印到日志文件
    # spring.main.banner-mode=log
    # 不打印
    # spring.main.banner-mode=off
  • 相关阅读:
    Linux------环境配置(CentOS 7) 安装JDK Tomcat Nginx MySQL
    ssm实战(8)-----支付模块开发,订单模块
    ssm实战(7)------收货地址管理
    ssm实战(6)------购物车管理
    ssm实战(4,5)------分类管理,商品管理
    ssm实战(3)------用户模块
    Mybatis(1)——映射文件,缓存,整合
    ssm实战(2)------pom.xml文件 和 mybatis-generator git
    7.1Servlet ---手写Servlet
    为什么有些资源要显示的close关闭
  • 原文地址:https://www.cnblogs.com/ScvQ/p/7007373.html
Copyright © 2011-2022 走看看