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
为构建 SpringApplication 和 ApplicationContext 实例提供了一套便利的流式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
SpringApplication及banner的配置的更多相关文章
- IntelliJ IDEA 2017版 SpringBoot的关闭自动配置和自定义Banner
一.关闭自动配置 在jar包下找下边的名字 设置关闭自动配置jar 多个的时候配置 二.自定义Banner (1)网站搜索一个图案.网址:http://patorjk.co ...
- jquery banner 轮播配置方法
1 概述 Banner可以作为网站页面的横幅广告,也可以作为游行活动时用的旗帜,还可以是报纸杂志上的大标题.Banner主要体现中心意旨,形象鲜明表达最主要的情感思想或宣传中心.在以往很多项目中主要体 ...
- SpringBoot(五):@ConfigurationProperties配置参数绑定
在springmvc或其他ssh框架中如果我们要实现一个配置参数的加载,需要使用代码实现读取properties文件等操作,或者需要使用其他属性@value(name="username&q ...
- SpringBoot(四):banner的控制
banner在springboot中是一个支持可配(banner的样式,banner的颜色,banner的内容).是否显示. 1)banner显示内容配置: 默认springboot如果在src/re ...
- SpringBoot系列——花里胡哨的banner.txt
前言 我们注意到springboot项目启动时,控制台会打印自带的banner,然后对于部分IT骚年来说,太单调太普通太一般了:所以,是时候表演真正的技术了 项目结构 我们只需要在springboot ...
- Spring Boot的SpringApplication类详解
相信使用过Spring Boot的开发人员,都对Spring Boot的核心模块中提供的SpringApplication类不陌生.SpringApplication类的run()方法往往在Sprin ...
- SpringBoot官方文档学习(一)SpringApplication
Springboot通过main方法启动,在许多情况下,委派给静态SpringApplication.run方法: public static void main(String[] args) { S ...
- 【Java】SpringBoot 佛祖保佑banner.txt
最新写代码有点多,拜拜佛祖,代码不出bug. 在springboot项目的resources文件夹下面创建一个banner.txt文件,springboot启动的时候默认会加载这个文件 ${AnsiC ...
- Spring Boot 知识清单(一)SpringApplication
爱生活,爱编码,微信搜一搜[架构技术专栏]关注这个喜欢分享的地方.本文 架构技术专栏 已收录,有各种JVM.多线程.源码视频.资料以及技术文章等你来拿. 一.概述 目前Spring Boot已经发展到 ...
随机推荐
- 面试常考的js题目(一)
1.找出dom文档中某个元素下面的所有文字(面试写的一塌糊涂,回来重写的) 1.返回回数组形式的 function getText(ele) { if (ele.nodeType === 3) { r ...
- the Percentage Layout of Android (安卓的百分比布局)
不用wrap_content.match_parent来指定 控件的大小, 1.在app/bulid.gradle文件的dependencies中添加 compile 'com.android.sup ...
- MySQL 必备工具使用的6个锦囊妙计!
这款工具是 MySQL 一个重要分支 percona 的,名称叫做 percona-toolkit(一把锋利的瑞士军刀),它呢是一组命令的集合.今儿给大家介绍几个我们在生产环境中最长用到的. 工具包的 ...
- 11 Python之初识函数
---恢复内容开始--- 1. 什么是函数? f(x) = x + 1 y = x + 1 函数是对功能或者动作的封装 2. 函数的语法和定义 def 函数名(): 函数体 调用: 函数名() 3. ...
- Hadoop网页监控配置
接之前的内容http://www.cnblogs.com/jourluohua/p/8734406.html 在之前那的内容中,仅实现了Hadoop的安装和运行,距离实际使用还有很远.现在先完成一个小 ...
- scrapy-redis 实现分布式爬虫
分布式爬虫 一 介绍 原来scrapy的Scheduler维护的是本机的任务队列(存放Request对象及其回调函数等信息)+本机的去重队列(存放访问过的url地址) 所以实现分布式爬取的关键就是,找 ...
- linux下mysql忘记密码解决方案
一.写随笔的原因:之前自己服务器上的mysql很久不用了,忘记了密码,所以写一下解决方案,以供以后参考 二.具体的内容: 1. 检查mysql服务是否启动,如果启动,关闭mysql服务 运行命令:ps ...
- 小程序UI设计(2)-符合视觉规范-字体规范
下图是微信小程序官方要求字体规范 根据此要求小程序设计工具定制了符合规范的组件.如下图 工具使用时,将左侧组件拖拽到设计区域即可.字体大小和颜色都是按照规范设置的.在使用时根据微信要求在不同位置摆放即 ...
- 第二章 Vue快速入门--20 品牌案例-完成品牌列表的添加功能+ 21 品牌案例-根据Id完成品牌的删除
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 【BZOJ2752】【Luogu P2221】 [HAOI2012]高速公路
不是很难的一个题目.正确思路是统计每一条边被经过的次数,但我最初由于习惯直接先上了一个前缀和再推的式子,导致极其麻烦难以写对而且会爆\(longlong\). 推导过程请看这里. #include & ...