Grails 3 основан на Spring Boot. Это означает, что мы получаем большую часть функциональности Spring Boot в наших приложениях Grails. Приложение Spring Boot по умолчанию имеет баннер, который отображается при запуске приложения. Приложение Grails по умолчанию переопределяет поведение Spring Boot и отключает отображение баннера. Чтобы снова добавить баннер в наше приложение Grails, у нас есть разные варианты.
Сначала мы можем добавить файл banner.txt в наш classpath. Если Grails найдет файл, он покажет содержимое, когда мы запустим приложение. Давайте добавим простой баннер с Grails3 в Ascii art в файл src/main/resources/banner.txt . Поместив файл в src/main/resources мы можем убедиться, что он находится в classpath как classpath:/banner.txt :
|
1
2
3
4
5
6
|
________ .__.__ ________ / _____/___________ |__| | _____\_____ \/ \ __\_ __ \__ \ | | | / ___/ _(__ <\ \_\ \ | \// __ \| | |__\___ \ / \ \______ /__| (____ /__|____/____ >______ / \/ \/ \/ \/ |
Давайте запустим наше приложение с задачей bootRun :
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
|
gradle bootRun:compileJava UP-TO-DATE:compileGroovy UP-TO-DATE:processResources:classes:findMainClass:bootRun ________ .__.__ ________ / _____/___________ |__| | _____\_____ \/ \ __\_ __ \__ \ | | | / ___/ _(__ <\ \_\ \ | \// __ \| | |__\___ \ / \ \______ /__| (____ /__|____/____ >______ / \/ \/ \/ \/Grails application running at http://localhost:8080... |
Чтобы получить больше информации в баннере, мы можем реализовать интерфейс org.springframework.boot.Banner . Этот интерфейс имеет метод printBanner в котором мы можем написать реализацию для баннера. Чтобы использовать его, мы должны создать экземпляр класса GrailsApp и установить свойство banner :
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
// File: grails-app/init/banner/Application.groovypackage bannerimport grails.boot.GrailsAppimport grails.boot.config.GrailsAutoConfigurationimport grails.util.Environmentimport org.springframework.boot.Bannerimport static grails.util.Metadata.current as metaInfoclass Application extends GrailsAutoConfiguration { static void main(String[] args) { final GrailsApp app = new GrailsApp(Application) app.banner = new GrailsBanner() app.run(args) }}/** * Class that implements Spring Boot Banner * interface to show information on application startup. */class GrailsBanner implements Banner { private static final String BANNER = ''' ________ .__.__ ________ / _____/___________ |__| | _____\\_____ \\/ \\ __\\_ __ \\__ \\ | | | / ___/ _(__ <\\ \\_\\ \\ | \\// __ \\| | |__\\___ \\ / \\ \\______ /__| (____ /__|____/____ >______ / \\/ \\/ \\/ \\/''' @Override void printBanner( org.springframework.core.env.Environment environment, Class<?> sourceClass, PrintStream out) { out.println BANNER row 'App version', metaInfo.getApplicationVersion(), out row 'App name', metaInfo.getApplicationName(), out row 'Grails version', metaInfo.getGrailsVersion(), out row 'Groovy version', GroovySystem.version, out row 'JVM version', System.getProperty('java.version'), out row 'Reloading active', Environment.reloadingAgentEnabled, out row 'Environment', Environment.current.name, out out.println() } private void row(final String description, final value, final PrintStream out) { out.print ':: ' out.print description.padRight(16) out.print ' :: ' out.println value }} |
Теперь мы снова bootRun задачу bootRun :
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
$ gradle bootRun:compileJava UP-TO-DATE:compileGroovy:processResources:classes:findMainClass:bootRun ________ .__.__ ________ / _____/___________ |__| | _____\_____ \/ \ __\_ __ \__ \ | | | / ___/ _(__ <\ \_\ \ | \// __ \| | |__\___ \ / \ \______ /__| (____ /__|____/____ >______ / \/ \/ \/ \/:: App version :: 0.1:: App name :: grails-banner-sample:: Grails version :: 3.0.1:: Groovy version :: 2.4.3:: JVM version :: 1.8.0_45:: Reloading active :: true:: Environment :: developmentGrails application running at http://localhost:8080... |
Написано с Grails 3.0.1. Искусство Ascii генерируется с помощью этого сайта .
| Ссылка: | Grails Goodness: добавьте баннер в приложение Grails от нашего партнера JCG Хьюберта Иккинка в блоге JDriven . |