100% found this document useful (11 votes)
766 views

Download Complete (Ebook) Spring Boot 2.0 Projects: Build production-grade reactive applications and microservices with Spring Boot (English Edition) by Mohamed Shazin Sadakath ISBN 9781789136159, 1789136156 PDF for All Chapters

The document provides information about various ebooks related to Spring Boot and microservices, including titles, authors, and ISBNs. It offers links to download these ebooks in different formats and highlights the benefits of using Mapt, an online digital library. Additionally, it includes details about the author and contributors of the book 'Spring Boot 2.0 Projects' by Mohamed Shazin Sadakath.

Uploaded by

zurlystrigka
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (11 votes)
766 views

Download Complete (Ebook) Spring Boot 2.0 Projects: Build production-grade reactive applications and microservices with Spring Boot (English Edition) by Mohamed Shazin Sadakath ISBN 9781789136159, 1789136156 PDF for All Chapters

The document provides information about various ebooks related to Spring Boot and microservices, including titles, authors, and ISBNs. It offers links to download these ebooks in different formats and highlights the benefits of using Mapt, an online digital library. Additionally, it includes details about the author and contributors of the book 'Spring Boot 2.0 Projects' by Mohamed Shazin Sadakath.

Uploaded by

zurlystrigka
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 65

Download Full Version ebook - Visit ebooknice.

com

(Ebook) Spring Boot 2.0 Projects: Build


production-grade reactive applications and
microservices with Spring Boot (English Edition)
by Mohamed Shazin Sadakath ISBN 9781789136159,
1789136156
https://ebooknice.com/product/spring-boot-2-0-projects-
build-production-grade-reactive-applications-and-
microservices-with-spring-boot-english-edition-22122616

Click the button below to download

DOWLOAD EBOOK

Discover More Ebook - Explore Now at ebooknice.com


Instant digital products (PDF, ePub, MOBI) ready for you
Download now and discover formats that fit your needs...

Start reading on any device today!

(Ebook) Learning Spring Boot 2.0 - Second Edition:


Simplify the development of lightning fast applications
based on microservices and reactive programming by Greg L.
Turnquist ISBN 9781786463784, 1786463784
https://ebooknice.com/product/learning-spring-boot-2-0-second-edition-
simplify-the-development-of-lightning-fast-applications-based-on-
microservices-and-reactive-programming-6855644
ebooknice.com

(Ebook) Practical Microservices Architectural Patterns -


Event-Based Java Microservices with Spring Boot and Spring
Cloud by Binildas Christudas ISBN 9781484245019,
1484245016
https://ebooknice.com/product/practical-microservices-architectural-
patterns-event-based-java-microservices-with-spring-boot-and-spring-
cloud-10416632
ebooknice.com

(Ebook) Practical Microservices Architectural Patterns:


Event-Based Java Microservices with Spring Boot and Spring
Cloud by Christudas, Binildas ISBN 9781484245002,
1484245008
https://ebooknice.com/product/practical-microservices-architectural-
patterns-event-based-java-microservices-with-spring-boot-and-spring-
cloud-55586520
ebooknice.com

(Ebook) Spring Boot Persistence Best Practices: Optimize


Java Persistence Performance in Spring Boot Applications
by Anghel Leonard ISBN 9781484256268, 1484256263
https://ebooknice.com/product/spring-boot-persistence-best-practices-
optimize-java-persistence-performance-in-spring-boot-
applications-50194838
ebooknice.com
(Ebook) Spring Boot Persistence Best Practices: Optimize
Java Persistence Performance in Spring Boot Applications
by Anghel Leonard ISBN 9781484256251, 1484256255
https://ebooknice.com/product/spring-boot-persistence-best-practices-
optimize-java-persistence-performance-in-spring-boot-
applications-11359766
ebooknice.com

(Ebook) Learn Microservices with Spring Boot - Second


Edition by Moisés Macero García; [Macero García, Moisés]
ISBN 9781484261309, 1484261305
https://ebooknice.com/product/learn-microservices-with-spring-boot-
second-edition-24688846

ebooknice.com

(Ebook) Full stack development with JHipster : build full


stack applications and microservices with Spring Boot and
modern JavaScript frameworks by Sendil Kumar N.; Deepu K.
Sasidharan ISBN 9781838820244, 1838820248
https://ebooknice.com/product/full-stack-development-with-jhipster-
build-full-stack-applications-and-microservices-with-spring-boot-and-
modern-javascript-frameworks-11734576
ebooknice.com

(Ebook) Beginning Spring Boot 3: Build Dynamic Cloud-


Native Java Applications and Microservices - Second
Edition by K. Siva Prasad Reddy, Sai Upadhyayula ISBN
9781484287927, 9781484287910, 1484287924, 1484287916
https://ebooknice.com/product/beginning-spring-boot-3-build-dynamic-
cloud-native-java-applications-and-microservices-second-
edition-53048286
ebooknice.com

(Ebook) Building RESTful Web Services with Spring 5:


Leverage the power of Spring 5.0, Java SE 9, and Spring
Boot 2.0, 2nd Edition by Raja CSP Raman, Ludovic Dewailly
ISBN 9781788475891, 1788475895
https://ebooknice.com/product/building-restful-web-services-with-
spring-5-leverage-the-power-of-spring-5-0-java-se-9-and-spring-
boot-2-0-2nd-edition-38560878
ebooknice.com
WOW! eBook
www.wowebook.org
Spring Boot 2.0 Projects

Build production-grade reactive applications and


microservices with Spring Boot

Mohamed Shazin Sadakath

BIRMINGHAM - MUMBAI

WOW! eBook
www.wowebook.org
Spring Boot 2.0 Projects
Copyright © 2018 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form
or by any means, without the prior written permission of the publisher, except in the case of brief quotations
embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented.
However, the information contained in this book is sold without warranty, either express or implied. Neither the
author, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to
have been caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products
mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy
of this information.

Commissioning Editor: Richa Tripathi


Acquisition Editor: Sandeep Mishra
Content Development Editor: Tiksha Sarang
Technical Editor: Supriya Thabe
Copy Editor: Safis Editing
Project Coordinator: Prajakta Naik
Proofreader: Safis Editing
Indexer: Rekha Nair
Graphics: Jisha Chirayil
Production Coordinator: Aparna Bhagat

First published: July 2018

Production reference: 1260718

Published by Packt Publishing Ltd.


Livery Place
35 Livery Street
Birmingham
B3 2PB, UK.

ISBN 978-1-78913-615-9

www.packtpub.com

WOW! eBook
www.wowebook.org
To my parents, for going through tough times in order to give me a good education
and manners, and to my wife, Nadhiya, for being my loving partner
throughout our life journey together.

WOW! eBook
www.wowebook.org
mapt.io

Mapt is an online digital library that gives you full access to over 5,000 books and videos, as
well as industry leading tools to help you plan your personal development and advance
your career. For more information, please visit our website.

Why subscribe?
Spend less time learning and more time coding with practical eBooks and Videos
from over 4,000 industry professionals

Improve your learning with Skill Plans built especially for you

Get a free eBook or video every month

Mapt is fully searchable

Copy and paste, print, and bookmark content

PacktPub.com
Did you know that Packt offers eBook versions of every book published, with PDF and
ePub files available? You can upgrade to the eBook version at www.PacktPub.com, and as a
print book customer, you are entitled to a discount on the eBook copy. Get in touch with us
at service@packtpub.com for more details.

At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a
range of free newsletters, and receive exclusive discounts and offers on Packt books and
eBooks.

WOW! eBook
www.wowebook.org
Contributors

About the author


Mohamed Shazin Sadakath is an experienced software engineer with over 9 years of
software development experience in J2SE-, J2EE-, and Spring-based applications. He is a
BSc (Hons) software engineering graduate, having achieved first class honors. He has
worked in different domains, ranging from telecommunications to real estate. In his spare
time, he contributes to open source projects, such as Spring Security, and writes technical
articles for blogs. He is a Stack Overflow Moderator and loves answering Java-related
questions.

I would like to thank my loving wife, Nadhiya, for her help and encouragement while
writing this book. I would like to thank Gunith Devasurendra for the technical reviewing
of this book. I would also like to thank Sudharshan Selvenayagam and Manoj Senevirathne
for their assistance while writing this book.

WOW! eBook
www.wowebook.org
About the reviewers
Gunith Eranda Devasurendra is a senior software engineer with 10 years, professional
development experience, specializing in Java. Born in Sri Lanka, he became interested in
programming as he considers elegant programming and design to be an art form. Gunith
has a master's in computer science awarded by the University of Colombo. He is a speaker
and a trainer on technical topics including Spring, and Git. He is also an advocate of FOSS.
Gunith also helps out in the Stack Overflow community.

To Lord Buddha. To my parents for raising me and giving me an education so that I could
contribute to this book. To my wife, Vimanga, for her love and helping me on so many
levels so that I can contribute. To my son Sasen for his love. To Shazin, the author, for
nominating me and trusting me. To all my teachers and friends who taught me things.

Biharck Araújo has been working as a principal software architect and lead programmer
for the past 15 years. He is passionate about technology and academic research. He has
been working with JavaEE technology for web projects that demand high-security
standards in terms of information transmission for companies across different sectors. He
has extensive experience in activities regarding software architecture. He works in
bioinformatics using technology in life's favor.

Packt is searching for authors like you


If you're interested in becoming an author for Packt, please visit authors.packtpub.com
and apply today. We have worked with thousands of developers and tech professionals,
just like you, to help them share their insight with the global tech community. You can
make a general application, apply for a specific hot topic that we are recruiting an author
for, or submit your own idea.

WOW! eBook
www.wowebook.org
Table of Contents
Preface 1
Chapter 1: Introduction 6
Technical requirements 6
Generating Spring Boot Projects 7
Opening the generated project with IntelliJ 8
Opening the generated project with STS 10
Getting started with Spring Boot 12
Learning about Spring Boot 12
Anatomy of a Spring Boot application 13
Supporting the Spring Framework ecosystem in Spring Boot 15
Changes since Spring Boot 1.x 16
Registering a Spring Bean using ApplicationContextInitializer 17
Configuration property binding 18
New property binding API 19
Property origin 20
Tightened rules for governing relaxed property binding 20
Environment variables with indices 21
Direct binding of property type java.time.Duration in the ISO-8601 form 21
Custom endpoints for Spring Boot Actuator using annotations 21
Exposing a custom Spring Boot Actuator endpoint 22
Extending a custom endpoint with a specialized implementation for the web 23
Connecting to a custom endpoint using monitoring and management tools 23
Custom metrics using Micrometer 25
Custom health indicator 26
Using the HTTP/2 protocol 27
Securing applications with Spring Security 30
The next milestone 31
Migration 32
Using the correct JDK and JVM 32
Running on Java 9 32
Tackling JAXBException 32
Using the correct AspectJ version 33
Being aware of limitations on Apache Cassandra drivers 33
Being aware of issues with the Maven Surefire Plugin 33
Using the upgraded Spring Framework 5.0 33
Modified CORS support behavior 34
Removed packages, classes, and methods 34
Dropped support for frameworks 34
Using the updated configuration properties 35
Using the changed servlet-specific server properties 35
Using the modified template engine extension handling 35

WOW! eBook
www.wowebook.org
Table of Contents

Using the changed actuator configuration properties 36


Using the changed actuator base path 36
Using the renamed actuator endpoints 36
Using the changed Embedded Container Configuration 37
Using the changed default behavior for path mapping 37
Using the changed default dispatcher types for the servlet filter 38
Using the modified transitive dependency to spring-boot-web-starter 38
Using the changed default proxying strategy 39
Using the modified configuration location strategy 39
Using the changed Jackson/JSON support 39
Using the changed Spring Boot Actuator security 39
Using the changed HikariCP default connection pool for JPA 40
Using the changed default database initialization strategy 40
Using the changed database schema creation strategy 40
Using the changed testing support 41
Using the revised Spring Security 41
Using the changed default security auto-configuration strategy 41
Spring Security OAuth2 is migrated to Spring Security core 41
Using the AuthenticationManager bean 41
Understanding removed features 42
Summary 42
Questions 43
Further reading 43
Chapter 2: Building a Basic Web Application 44
Technical requirements 44
Getting started 45
Web application architecture 45
Workflow of Spring Web MVC 46
Requirements for our web application 48
The use case diagram 48
Using Spring Data JPA for persistence 49
Understanding the Java Persistence API (JPA) 49
Understanding Spring Data JPA 50
Class diagram for the domain model 50
Implementation of the domain model using JPA annotations 51
Setting up dependencies and configuration 51
Implementing the domain model 53
Implementation of Spring Data JPA repositories 55
Testing Spring Data JPA repositories 55
Using Spring Boot Devtools for database visualization 58
Using Services to encapsulate business logic 60
Testing Services 61
Using Spring Thymeleaf for the view 64
Understanding template engines 64
Spring Thymeleaf 65

[ ii ]

WOW! eBook
www.wowebook.org
Table of Contents

UI design for the Retro Board 65


UI implementation for the Retro Board using Spring Thymeleaf 66
Using Spring Web MVC with servlet 3.x for the controller 68
Implementation of Controllers annotations 69
Testing controllers 70
Using Spring Security for authentication and authorization 73
Demonstrating the Retro Board 76
Summary 78
Questions 78
Further reading 79
Chapter 3: Building a Simple Blog Management System 80
Technical requirements 80
Getting started 81
Web application architecture 81
Workflow of Spring WebFlux 82
Requirements of the Bloggest system 82
The use case diagram 83
Using Spring Data Elasticsearch for persistence 84
Understanding Elasticsearch 84
Understanding Spring Data Elasticsearch 85
Class diagram for the domain model 85
Implementation of the domain model using Spring Data Elasticsearch
annotations 86
Setting up dependencies and configuration classes 86
Implementing the domain model 87
Implementation of Spring Data Elasticsearch repositories 88
Using Apache FreeMarker for the view 89
Understanding template engines 89
Apache FreeMarker 90
UI design for Bloggest 91
UI implementation for Bloggest using Apache FreeMarker 93
Implementing a common layout using Apache FreeMarker 94
Implementing a List Articles page 97
Implementing a Create Article page 100
Implementing a Show Article page 102
Implementing an error page 104
Using Spring WebFlux for controller 105
Implementation of controllers 105
Implementation of ControllerAdvice 109
Using Spring Security for authentication and authorization 110
Demonstrating Bloggest 113
Summary 121
Questions 122
Further reading 122

[ iii ]

WOW! eBook
www.wowebook.org
Table of Contents

Chapter 4: Introduction to Kotlin 123


Technical requirements 123
Getting started with Kotlin 124
Default imports 124
Basic data types 125
Numeric data types 125
Learning numeric literals 125
Numeric representation 126
Numeric operations 126
String literals 127
The syntax for Kotlin code 127
The Kotlin packages 127
String interpolation 128
Functions in Kotlin 128
Variables in Kotlin 129
Conditional statements 129
The if statement 129
The when statement 130
Type checking and automatic casting 130
Nullable values and compile-time null safety 130
The for loop 131
The for loop with an array 131
The for loop with a collection 131
The for loop with a value range 132
The while loop 132
Object-oriented programming with Kotlin 133
Learning about visibility modifiers 133
Classes in Kotlin 134
Abstract classes 134
Concrete classes 135
The concept of interfaces in Kotlin 135
Learning about extensions 136
Generic types in Kotlin 137
Enums in Kotlin 137
Objects in Kotlin 138
Object expressions 138
Object declarations 138
Companion objects 139
Advanced programming with Kotlin 139
Functions 140
Infix notation in functions 140
Local functions in Kotlin 140
Default arguments in functions 141
Named arguments in functions 141
Generics in functions 142
Variable number of arguments (vararg) in functions 142
Summary 142
Questions 143

[ iv ]

WOW! eBook
www.wowebook.org
Table of Contents

Further reading 143


Chapter 5: Building a Reactive Movie Rating API Using Kotlin 144
Technical requirements 144
Getting started 145
REST architecture 145
Requirements of REST architecture 146
The use case diagram 147
Using Spring Data MongoDB for persistence 147
Understanding MongoDB 148
Understanding Spring Data MongoDB 148
Class diagram for the domain model 149
Implementation of the domain model using Spring Data MongoDB
annotations 150
Setting up dependencies and configuration 150
Implementing the domain model 150
Implementing of Spring Data MongoDB repositories 152
Using a service to encapsulate business logic 152
Testing Services 154
Using Spring WebFlux for controllers 158
Implementation of controllers 159
Testing controllers 160
Using Spring Security for basic authorization 163
Demonstrating Moviee 165
Integration testing 165
Demonstrating the use of Postman 168
Accessing the List Movies endpoint 168
Accessing the Get Movie endpoint 169
Accessing the Get Movie endpoint with an invalid Movie ID 170
Accessing the Rate Movie endpoint 171
Summary 172
Questions 172
Further reading 173
Chapter 6: Building an API with Reactive Microservices 174
Technical requirements 175
Getting started 175
Microservices architecture 175
The requirements of microservices architecture 177
The use case diagram 178
The project structure to develop microservices 179
Using Spring Data Redis for persistence 180
Understanding Redis 180
Understanding Spring Data Redis 180
Class diagram for the domain model 181
Implementation of domain model using Spring Data Redis annotations 182

[v]

WOW! eBook
www.wowebook.org
Table of Contents

Setting up dependencies and configuration 182


Implementing the domain model 182
Implementation of Spring Data Redis repositories 184
Using a Service to encapsulate business logic 184
Using Spring WebFlux for a controller 190
Implementation of controllers 191
Using asynchronous data transfer for cross-microservice
communication 194
Asynchronous data transfer using Redis 194
Using Docker to support microservices 196
Understanding Docker 196
Using Maven to build Docker images 197
Building a system of microservices with Docker 199
Deploying microservices with Docker 203
Demonstrating Saber 204
Submitting to the Register Taxi endpoint 204
Submitting location to update Taxi Location endpoint 206
Submitting to Update Taxi Status endpoint 207
Accessing the Get Taxi Status endpoint 208
Accessing the GET available Taxis endpoint 209
Submitting to Book Taxi endpoint 210
Submitting to Accept Taxi Booking endpoint 211
Submitting to cancel Taxi Booking endpoint 212
Accessing Taxi Bookings endpoint 213
Summary 214
Questions 214
Further reading 215
Chapter 7: Building a Twitter Clone with Spring Boot 216
Technical requirements 216
Getting started 217
Beginning with the Tweety architecture 217
Tweety requirements 218
The use case diagram 218
Using Spring Data JPA for persistence 219
Class diagram for the domain model 219
Implementation of the domain model using Spring Data JPA annotations 220
Setting up dependencies and configuration 220
Implementing the domain model 221
Implementing Spring Data JPA repositories 223
Caveat for going reactive with blocking JDBC 223
Using Service to encapsulate business logic 224
Using Angular 5 for the frontend 226
Getting started with Angular 5 application development 226
Generating Angular services 227
Generating the users service 228

[ vi ]

WOW! eBook
www.wowebook.org
Table of Contents

Generating Angular page components 230


Generating the Tweets Add page 232
Generating the User Profile page 234
Using Spring Web Flux for the REST controller 235
Implementing controllers 236
Enabling Angular frontend access to controllers 238
Using Spring Security for authentication and authorization 239
Understanding OAuth2 239
Setting up dependencies and configuration 240
Configuring the Resource Server 241
Configuring the Authorization Server 241
Configuring web security 242
Using an Angular service for OAuth2 authentication and authorization 243
Demonstrating Tweety 246
Accessing the login page 247
Accessing the List Tweets page 248
Accessing the Send Tweet page 248
Accessing the User Profile page 249
Summary 250
Questions 251
Further reading 251
Chapter 8: Introducing Spring Boot 2.0 Asynchronous 252
Technical requirements 252
Getting started 253
Synchronous applications 253
Asynchronous applications 254
The requirement of asynchronous applications 254
The use case diagram 255
The architecture of an image resizing application 256
Using Spring Kafka for communication 256
Understanding Apache Kafka 257
Setting up dependencies and configuration 258
Configuration for the Image Resize Request Producer 258
Configuration for Image Resize Request Consumer 261
Starting Spring Boot applications in a non-web mode 262
Using Quartz for scheduling 263
Understanding Quartz 263
Setting up dependencies and configuration 263
Configuration for Quartz scheduling 263
Demonstrating Image Resizer 265
Building all dependencies 265
Running Apache Kafka 265
Running Apache ZooKeeper on Windows 265
Running Apache Kafka on Linux/Unix 266
Running Apache Kafka on Windows 266

[ vii ]

WOW! eBook
www.wowebook.org
Table of Contents

Running Image Resize Request Consumer 266


Running Image Resize Request Producer 266
Summary 269
Questions 269
Further reading 270
Chapter 9: Building an Asynchronous Email Formatter 271
Technical requirements 271
Getting started 272
Why Email Formatter is useful 272
The use case diagram 273
The architecture of the Email Formatter application 274
Using Spring Data JPA for persistence 274
Class diagram for the domain model 275
Implementation of the domain model using JPA annotations 275
Setting up dependencies and the configuration class 275
Implementing the domain model 276
Implementation of Spring Data JPA repositories 277
Using Services to encapsulate business logic 277
Using Apache FreeMarker for templates 279
Using Spring Kafka for communication 281
Setting up dependencies and the configuration class 282
Configuration for User Registration 282
Configuration for the Email Formatter consumer 284
Configuring Java Mail 286
Using Spring Web MVC for the REST controller 287
Implementation of controller annotations 287
Using Spring Security for authentication and authorization 288
Demonstrating Email Formatter 289
Building all dependencies 289
Running Apache Kafka 290
Running Apache ZooKeeper on Windows 290
Running Apache Kafka on Linux/Unix 290
Running Apache Kafka on Windows 290
Running SMTP server 291
Running the Email Formatter consumer 292
Running the User Registration microservice 292
Summary 296
Questions 297
Further reading 297
Assessments 298
Other Books You May Enjoy 305
Index 308

[ viii ]

WOW! eBook
www.wowebook.org
Preface
This book is about Spring Boot 2.0 hands-on development for beginners, intermediate, and
expert-level software developers. The purpose of this book is to increase the practical
knowledge of the readers by going through the practical uses of the features introduced in
Spring Boot 2.0.

This book covers vast topics with example applications so that it is much easier to grasp
and use in real-life projects.

Who this book is for


This book is for anyone interested in developing applications using the Spring Framework,
and specifically, Spring Boot 2. The readers may have prior experience of Spring Boot, but it
is not compulsory, as even beginners can benefit from the content of this book.

This book expects the readers to have some level of understanding of software
development using Java.

What this book covers


Chapter 1, Introduction, outlines the Spring Boot 2.0 application development framework
and compares its features with the previous version of Spring Boot. It also talks about
configuration property changes, API changes, platform changes, and more in Spring Boot
2.0. Furthermore, it explains how to migrate from the previous version of Spring Boot
application to Spring Boot 2.0 application.

Chapter 2, Building a Basic Web Application, begins with the practical side of developing a
basic web application using the Spring Boot 2.0 Framework. It also talks about Spring Data
JPA persistence, Spring Thymeleaf view, and Spring WebFlux controllers.

Chapter 3, Building a Simple Blog Management System, presents the practical side of
developing a simple blog management system using the Spring Boot 2.0 framework. It also
talks about Spring Data Elasticsearch for persistence, Apache FreeMarker view, and Spring
WebFlux controllers.

WOW! eBook
www.wowebook.org
Preface

Chapter 4, Introduction to Kotlin, introduces the programming language Kotlin by


comparing it with Java programming language side by side. It will help to get started with
Kotlin programming, subsequently moving into advanced topics in Kotlin such as OOP
and other features.

Chapter 5, Building a Reactive Movie Rating API Using Kotlin, discusses reactive movie rating
API development using Kotlin programming language with Spring Boot 2.0. It talks about
Spring Data MongoDB persistence, Spring WebFlux controllers, and Spring Security
authentication and authorization.

Chapter 6, Building an API with Reactive Microservices, explains reactive microservices


development using Spring Boot 2.0. It also talks about Spring Data Redis persistence,
Spring Web Flux controllers, Asynchronous data transfer among microservices, and Docker
deployment of microservices.

Chapter 7, Building a Twitter Clone with Spring Boot, covers Angular application acting as a
client for Spring Boot 2.0 REST API. It also talks about Spring Data JPA persistence,
Angular 5 frontend, Spring Web Flux controllers, and Spring Security OAuth2
authentication and authorization.

Chapter 8, Introducing Spring Boot 2.0 Asynchronous, Quartz Scheduler introduces


asynchronous application development using Spring Boot 2.0. It also talks about Apache
Kafka as a message broker that enables decoupled, asynchronous communication between
applications.

Chapter 9, Building an Asynchronous Email Formatter, explains details of how to build an


Asynchronous Email Formatter, using Spring Boot 2 as the backend development
framework and Apache Kafka as a message queue. It will also explain how to use JPA as
the persistence layer, which is a widely used data source. It will use Apache FreeMarker to
create the email templates and show how to use placeholders to provide dynamic data to
email templates.

To get the most out of this book


You need knowledge of the following:

1. The Java programming language


2. Spring Framework
3. Web application concepts

[2]

WOW! eBook
www.wowebook.org
Preface

The following tools will be used throughout chapters:

1. Java Development Kit 8+


2. Maven 3
3. IntelliJ IDEA or Spring Tool Suite

Download the example code files


You can download the example code files for this book from your account at
www.packtpub.com. If you purchased this book elsewhere, you can visit
www.packtpub.com/support and register to have the files emailed directly to you.

You can download the code files by following these steps:

1. Log in or register at www.packtpub.com.


2. Select the SUPPORT tab.
3. Click on Code Downloads & Errata.
4. Enter the name of the book in the Search box and follow the onscreen
instructions.

Once the file is downloaded, please make sure that you unzip or extract the folder using the
latest version of:

WinRAR/7-Zip for Windows


Zipeg/iZip/UnRarX for Mac
7-Zip/PeaZip for Linux

The code bundle for the book is also hosted on GitHub at https:/​/​github.​com/
PacktPublishing/​Spring-​Boot-​2.​0-​Projects-​Fundamentals-​of-​Spring-​Boot-​2.​0. In case
there's an update to the code, it will be updated on the existing GitHub repository.

We also have other code bundles from our rich catalog of books and videos available
at https:/​/​github.​com/​PacktPublishing/​. Check them out!

[3]

WOW! eBook
www.wowebook.org
Preface

Conventions used
There are a number of text conventions used throughout this book.

CodeInText: Indicates code words in text, database table names, folder names, filenames,
file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an
example: "An ApplicationStartedEvent will be sent right after the application context
is refreshed but before any command-line runners run. "

A block of code is set as follows:


public class Address {
private String number;
private String street;
private String city;
private String country;
private String zipCode;
// Getters, Setters, Equals, Hashcode
}

Any command-line input or output is written as follows:


$ jconsole

Bold: Indicates a new term, an important word, or words that you see onscreen. For
example, words in menus or dialog boxes appear in the text like this. Here is an example:
"Select File | Open from the menu bar."

Warnings or important notes appear like this.

Tips and tricks appear like this.

[4]

WOW! eBook
www.wowebook.org
Preface

Get in touch
Feedback from our readers is always welcome.

General feedback: Email feedback@packtpub.com and mention the book title in the
subject of your message. If you have questions about any aspect of this book, please email
us at questions@packtpub.com.

Errata: Although we have taken every care to ensure the accuracy of our content, mistakes
do happen. If you have found a mistake in this book, we would be grateful if you would
report this to us. Please visit www.packtpub.com/submit-errata, selecting your book,
clicking on the Errata Submission Form link, and entering the details.

Piracy: If you come across any illegal copies of our works in any form on the Internet, we
would be grateful if you would provide us with the location address or website name.
Please contact us at copyright@packtpub.com with a link to the material.

If you are interested in becoming an author: If there is a topic that you have expertise in
and you are interested in either writing or contributing to a book, please visit
authors.packtpub.com.

Reviews
Please leave a review. Once you have read and used this book, why not leave a review on
the site that you purchased it from? Potential readers can then see and use your unbiased
opinion to make purchase decisions, we at Packt can understand what you think about our
products, and our authors can see your feedback on their book. Thank you!

For more information about Packt, please visit packtpub.com.

[5]

WOW! eBook
www.wowebook.org
1
Introduction
This chapter will introduce the reader to Spring Boot and explain how it stands out from
other competing frameworks. It will begin by explaining how to get started developing
applications using Spring Boot. Also, it will explain about Spring Boot 1.x and the
improvements introduced in Spring Boot 2.0. Furthermore, it will walk through the most
noticeable features and/or improvements of Spring Boot 2.0. Continuing on, it will explain
progress with Spring Boot 2.0 and supply tips on migration from the older versions to
Spring Boot 2.0.

This chapter covers the following topics:

Understanding Spring Boot


Generating Spring Boot Projects
Getting started with Spring Boot
Changes since Spring Boot 1.x
The next milestone
Migration

Technical requirements
Technical requirements for this chapter are as follows:

To install Java Development Kit (JDK) 8, it can be downloaded from its official
page at http:/​/​www.​oracle.​com/​technetwork/​java/​javase/​downloads/​jdk8-
downloads-​2133151.​html
To install Maven 3, download it from its official page at https:/​/​maven.​apache.
org/​download.​cgi

WOW! eBook
www.wowebook.org
Introduction Chapter 1

To install IntelliJ IDEA, download it from its official page at https:/​/​www.


jetbrains.​com/​idea/​download/​
To install Spring Tool Suite (STS), download it from its official page at https:/​/
spring.​io/​tools

Generating Spring Boot Projects


In this book, we will be using http:/​/​start.​spring.​io, which is a convenient tool for
generating Spring Projects with the required dependencies to get started. This tool supports
multiple Spring Boot versions, programming languages (Java, Groovy, Kotlin), project
types (Maven, Gradle), and dependencies. Learning to use this tool will help readers to get
started quickly with Spring Projects. The following is a screenshot of the tool to help us get
familiarized with it:

This tool allows the selection of a Project type (Maven Project, Gradle Project),
programming language (Java, Groovy, Kotlin), Spring Boot version (2.0.*, 1.5.*), project
artifact group, artifact name, and project dependencies. After selecting the correct options,
click on Generate Project will download a ZIP file of the project.

[7]

WOW! eBook
www.wowebook.org
Introduction Chapter 1

The ZIP file needs to be extracted first before being used. The extracted ZIP file will have
the following structure:
<Project Name>/
├── src/
├── pom.xml
├── mvnw
└── mvnw.bat

Opening the generated project with IntelliJ


To open the generated project with IntelliJ, we perform the following steps:

1. Open IntelliJ IDE.


2. Select File | Open from the menu bar as shown in the following screenshot:

[8]

WOW! eBook
www.wowebook.org
Introduction Chapter 1

3. Navigate to the location where the extracted project is and click on OK after
selecting the project, shown as follows:

4. The IDE will show the opened project.

[9]

WOW! eBook
www.wowebook.org
Introduction Chapter 1

Opening the generated project with STS


To open the generated project the Spring Tool Suite, we perform the following steps:

1. Open STS.
2. Select File | Open Projects from File System... from the menu bar, as shown in
the following screenshot:

[ 10 ]

WOW! eBook
www.wowebook.org
Introduction Chapter 1

3. From the dialog box that launched, click on the Directory... button:

4. Navigate to the extracted project location and Click on OK after selecting the
project:

[ 11 ]

WOW! eBook
www.wowebook.org
Introduction Chapter 1

5. Finally, click on Finish on the import projects dialog box.


6. The IDE will show the opened project.

The source code for this chapter can be found at https:/​/​github.​com/​PacktPublishing/


Spring-​Boot-​2.​0-​Projects-​Fundamentals-​of-​Spring-​Boot-​2.​0, in the Chapter01
directory.

Getting started with Spring Boot


This section will enable readers to get started with Spring Boot by explaining its features in
detail. Furthermore, it will help you get started with Spring Boot application development
by explaining the bare-bones of a Spring Boot application. Furthermore, it will explain the
Spring Framework ecosystem and how it can be used in the Spring Boot application to
harness the power of time-tested, industry-standard databases, messaging systems, and so
on.

Learning about Spring Boot


Spring Boot is an application development framework for the Java virtual machine (JVM)
that enables users to write stand-alone, production-grade, flexible, and extensible Spring-
based applications with minimum code and configurations. This follows the Rapid
application development (RAD) paradigm where the focus is on writing business logic
that matters. With the introduction of cloud-based hosting services and microservice
architectures, Spring Boot has been further elevated into a must-know technology platform.
The following are some of its features:

Standalone: A Spring Boot application is self-contained and easily deployable. It


can start with its own embedded Tomcat, Jetty, Undertow web container, or as a
console application from a just standard file such as Java Archive (JAR) or Web
Archive (WAR). An example of this would be an application that has spring-
boot-starter-web as a dependency, which when run will by default inside an
embedded Tomcat web container.
Production-grade: A Spring Boot application enables most of the features
required for production, such as monitoring, connection pools, externalized
configurations, and so on, out of the box, and ships with industry-standard, time-
tested, and proven third-party applications such as Tomcat.

[ 12 ]

WOW! eBook
www.wowebook.org
Introduction Chapter 1

Flexible: A Spring Boot application will have most of its settings auto-configured
with default settings based on the dependencies available in the classpath of the
application. But the auto-configuration will step back whenever a custom
configuration is made. An example for this would be when a Spring Boot
application finds a MySQL JDBC driver in the classpath; it auto-
configures DataSource, which connects to the host localhost and port 3306, as
those will be the settings for a MySQL Server with a default installation.
Extensible: A Spring Boot application will have most core functionalities
implemented out of the box, but also has a lot of Service Provider Interfaces
(SPI), which are used by third-party developers to implement or modify
functionality. An example of this would be when a requirement arises for a
custom endpoint in Spring Boot Actuator; extending and overriding
the AbstractEndpoint.invoke method in a Spring Bean will expose it as a
new endpoint under Spring Boot Actuator.

Spring Boot does not do any code generation and does not require any XML files to be
configured in order to run. Spring Boot is ideal for on-premise and cloud-based
deployments with a quick boot-up time and a good memory footprint. The uniqueness of
Spring Boot comes from its ecosystem of Spring modules, which covers security, data
persistence, batch processing, and so on and from the highly active, competent community
of developers who keep on improving the Spring Boot Framework.

Anatomy of a Spring Boot application


The anatomy of a Spring Boot application will be that it will be inheriting from a spring-
boot-starter-parent project that will in return have all the common dependencies
available for a Spring Boot application. Apart from this, there will be one or more spring-
boot-starter POM such as spring-boot-starter-web, spring-boot-starter-jpa,
and so on. The following example excerpt from pom.xml shows the basic dependencies of a
Spring Boot application:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>

[ 13 ]

WOW! eBook
www.wowebook.org
Introduction Chapter 1

</dependency>
...
</dependencies>

The minimum bootstrapping point of a Spring Boot application will be a class with a main
method that will be annotated with a @SpringBootApplication annotation along with
the main method body, which calls the SpringApplication.run static method, for which
a configuration class (a class with @Configuration
annotation—the @SpringBootApplication annotation transitively has one) needs to be
passed, along with a String array of arguments. The following code shows the minimum
bootstrapping point of a Spring Boot application:
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class SpringBootIntroApplication {

public static void main(String[] args) {


SpringApplication.run(SpringBootIntroApplication.class, args);
}

@Bean
public ApplicationRunner applicationRunner() {
return args -> {
System.out.println("Hello, World!");
};
}
}

By running the preceding class, a Spring Boot application can be provisioned and executed.
There are several ways to run a Spring Boot application; some of them are mentioned here:

Running the Spring Boot application main class using an IDE.


Building a JAR or WAR file using the following Maven command and then
running:
$ mvn clean install
$ java -jar target/<package-name>.[jar|war]

Run this using the Spring Boot Maven plugin:


$ mvn clean spring-boot:run

[ 14 ]

WOW! eBook
www.wowebook.org
Exploring the Variety of Random
Documents with Different Content
tulevaisuuteni on turvattu, olen arvossapidetty, hyvin toimeentuleva
mies, jonka sopii mennä naimisiinkin!

Ehdottomasti huudahti Colette:

— Tuon punatukkaisen tytön kanssa… arvasin sen heti!

Georges näytti peräti ällistyneeltä.

— Minkä tytön kanssa? kysyi hän.

— Tuon, jota sinä rakastat, tietystikin… minä hölmönä sinä minua


pidät?

— Se, jota rakastan, on vaaleaverinen, Colette, mumisi herra


Hamelin kirjuri.

Hän pysähtyi hiukan arastellen… Mutta nyt joutui Colette täysin


suunniltansa.

— Tämä on jo liikaa, huudahti hän. — Sinä tunnustit minulle, ettei


vaalea tukka sinua miellytä, silloin kuin… Mutta nyt on toista… Jos
sinusta vielä kuukausi sitten vaalea tukka tuntui epämiellyttävältä
siitä syystä että minä olen vaaleaverinen, niin sano se vaan suoraan,
rakkaani… sano, sano pois vaan! Se on minulle täysin yhdentekevää!

— Epämiellyttävältä siksi että sinä olet vaaleaverinen… Mitä sinä


tarkoitat? Asianlaitahan on juuri päinvastainen…

— Päinvastainen? toisti Colette kärsimättömästi.

— Mitä tuo »päinvastainen» merkitsee?


— Se merkitsee luullakseni sitä… että vaalea tukka miellyttää
minua siksi, että sinä olet vaaleaverinen… ja siksi että rakastan sinun
tukkaasi… ja siksi että rakastan sinua… puhui Georges. — Oi Colette,
olen ollut sokea, olen ollut mieletön ja typerä… En tullut sitä
ajatelleeksikaan… taikka en käsittänyt sitä… ja kenties en olisi
käsittänyt sitä koskaan! Saadakseni silmäni auki täytyi minun saada
sinut omakseni setä Franeusen välityksellä… ja menettää sinut…
ennen kaikkea menettää sinut, omistettuani sinut ensin… Colette,
rakkaani, juuri sinä merkitset minulle rikkautta ja onnea. Rakas
tyttöseni, mehän rakastamme toisiamme… myönnä, että me
rakastamme toisiamme…

Onnellisena, turvallisena, oli Colette jo painautunut Georges'in


povelle.

—Me rakastamme toisiamme, toisti hän kuuliaisesti.

Silloin kuultiin karkean äänen lausuvan hieman ivallisesti:

— Älkää antako häiritä itseänne! Minä lähden tieheni…

Elämässä on hetkiä, jolloin ei kuule ovien aukenemista. Tuo vanha


ystävä, joka oli tullut huoneeseen ja matkalta palaten aikoi viettää
tämän illan täti Rosalien luona, oli jo poistunut suureen
vierashuoneeseen.

Työntäen Georges'in luotaan huudahti Colette tyrmistyneenä:

— Hyvä Jumala, hänhän ei tiedä ollenkaan, että me olemme


purkaneet kihlauksemme, mitähän hän sanoo tädille?…

Ja sitten hän jatkoi:


— Ja mitähän täti hänelle vastaa, kun ei hän aavistakaan, että
olemme menneet uudelleen kihloihin?

Mutta hymyillen ja mitään vastaamatta suuteli Georges Coletten


tuskaisia silmiä. Luoden katseensa maahan ja pyrkien
mahdollisimman yksinkertaisesti suoriutumaan tuosta sekavasta
tilanteesta, kuiskasi Colette:

— Minkä oivan tuuman hän olikaan keksinyt, tuo setä Franeuse!


KIRKKOHERRA CYRILLEN
RUUSUTARHA.

Auringon vaipuessa kohden taivaan rantaa ja kertoellessa valtavin,


niityillä ja kukkuloilla nähtävin piirroin Jumalan kunniasta,
kirkkoherra Cyrille asteli rauhallisesti pappilan puutarhassa,
ruusujansa kastellen.

Hän oli pienikasvuinen, hintelä ja lempeä mies, niin hintelä, että


hänen vartalonsa epämääräiset piirteet tykkänään katosivat
kauhtanan poimuihin, niin lempeä, että häntä kunnioitettiin
Fontanettes'issä, hänen seurakunnassaan, kuin pyhimystä, ja hänen
katseensa sai vihan aallot asettumaan ja vuodatti lohtua
murtuneisiin mieliin. Koko hänen olentonsa henki pelkkää rakkautta.

Hän rakasti vaatimattomia seurakuntalaisiansa, hän rakasti


pappilaansa puutarhoineen, joka palkitsi hänen rakkautensa mitä
runsaimmalla kukkeudella. Hän rakasti myöskin sirorakenteista
kirkkoansa, missä hänen mielensä täytti niin suloinen rauha, niin
ihana tyyneys, hänen kohottaessaan jumalallisen anteeksiannon
kalkin huulillensa. Luojaa palvoessaan hän liittyi luomakunnan
valtavaan kaikkeuteen, kaikkiin olentoihin, kaikkiin olioihin.
Tänä kesäkuun iltana kukkien mehevä sulotuoksu, auringonlaskun
uhkea kirkkaus herätti hänen mielessään niin valtavan
kiitollisuudentunteen, että hän, virvoittaessaan ruusujansa raikkaalla
vesisuihkeella, ikäänkuin kiitokseksi noiden monien ihmeiden
iankaikkiselle antajalle autuaallisena alkoi mumista pyhän Fransiscus
Assisilaisen ylistyslaulua:

»Kiitetty olkoon Herramme ja koko hänen luomakuntansa,


erittäinkin Aurinko, veljemme, joka antaa meille päivän ja
valkeuden. Kiitetty olkoon Herramme, joka on antanut meille
Maan, joka meitä elättää ja ruokkii, joka meille suo
monenlaisia hedelmiä, kirjavia kukkasia, yrttejä…»

Kerran, jo kauan sitten, kun Jean-Cyrille Morel ei vielä ollut


pappisuralla, hän oli kokenut kammottavia hetkiä. Ne ne olivat
sirottaneet lunta hänen tukkaansa jo ennen talven tuloa. Yhä
vieläkin, ajan vierittyä yli neljännesvuosisadan eteenpäin, hänelle
väliin kuvastui mieleen, kuinka hän silloin oli nuorena, luottoisana,
toivehikkaana hakenut itselleen Pariisissa paikkaa, joka olisi
tyydyttänyt hänen vaatimattomat pyyteensä, ja mennyt
tarjoutumaan tuon tunnetun kauppahuoneen palvelukseen, jonne
hänelle oli annettu suosituskirje. Hänen istuessaan huoneessa, jonne
hänet oli neuvottu, tuli sinne nuori mies — arvatenkin liikkeen
henkilökuntaan kuuluva — kynä korvan takana, pinkka papereita
kädessä. Nöyrää paikananojaa, joka istui syrjässä hämärässä
nurkassaan, hän ei havainnutkaan. Oi, kun kirkkoherra ajatteli tuota
arkipäiväistä alkua, silloin tunsi hän väristyksen käyvän luitansa ja
ytimiänsä myöten, ja kuva kuvalta esiintyi sitä seurannut näytelmä
hänen muistissansa.
Mutta hän kiiruhti karkoittamaan tuon pahan unen… Eikö hänen
tullut siunata tuota kauheata koettelemusta taivaan välikappaleena?
Olihan se johtanut hänet kaikkien haavojen parantajan luo, hänen,
joka yksin voi vuodattaa lohtua vääryyden runtelemaan mieleen!
Viattomasti syytettynä, halveksittuna, oli Jean-Cyrille muistanut ne
pyrkimykset, jotka lapsuudenaikana olivat täyttäneet hänen, pappien
kasvattaman orvon mielen, ja tuntien vakavaa kutsumusta
pappisvirkaan hän oli antautunut Jumalalle.

Nyt olivat myrskyt vaimenneet hänen sydämessään, katkeruus oli


muuttunut lempeydeksi. Rukouksistansa, joissa hän anoi
ihmisveljillensä Herran armoa ja hänen antimiansa, hän ei sulkenut
pois ainoatakaan ihmistä, ei ainoatakaan, — ei edes tuota
rangaistuksetta jäänyttä pahantekijää, jonka nimeä hän ei tiennyt,
tuota miestä, joka rohkeasti oli jättänyt hänet häpeää kärsimään.
Niin oli hän onnellinen, sillä maallista kunnianhimoa ei hän tuntenut,
eikä hän tyydytyksen lisäksi, mitä hänen pyhä toimensa hänelle
tuotti, pyytänyt muuta kuin tilaisuutta tehdä hiukan hyvää ja saada
hoidella ruusujansa.

Puutarhan portti aukeni ja siitä tuli sisään viheliäisesti vaatetettu


talonpoika, joka katse rukoilevana jäi seisomaan parin askeleen
päähän portista. Kirkkoherra oikaisihe heti kumarasta asennostaan ja
pani pois ruiskukannunsa.

— Te se olette, Chabonneau-parka, sanoi hän. — Niin… kuulin


kaikki
Paulinelta. Kävin tänä aamuna linnassa, ystäväni, mutta herra
Minoussier ei ollut kotosalla. Menen sinne kyllä vielä uudelleen…

Nyt seurasi äänettömyys. Chabonneau pyöritteli lakkiansa


känsäisissä käsissään, katse suunnattuna tuon pienen käytävän
soraan. Herttaisesti ryhtyi kirkkoherra jälleen puhumaan:

— Mutta miksikä te metsästelettekin, Chabonneau-parkani, herra


Minoussier'in alueella? Sehän on varsin pahoin tehty, ja minusta
näyttää siltä kuin te ette täysin käsittäisi, miten tuota tekoanne on
arvosteltava… Salametsästyshän on toisen omaisuuden riistämistä.

Chabonneau painoi päänsä yhä alemmaksi.

— Voi, hyvä kirkkoherra, sanoi hän, — eihän kukaan tavoittelisi


hänen riistaansa, jos vain omistaisi hiukan enemmän rahaa tai saisi
vähän enemmän työtä.

Puiden sitten nyrkkiä epätoivoisesti kohden taivasta hän huusi:

— Voi sitä surkeata onnettomuutta! Miksikä Paulinen pitikin neuloa


minun nimeni lakkiini. Sehän minut saattoi turmioon, kirkkoherra.
Minulla on ketterät sääret, minua ei olisi tavoitettu, mutta
juostessani pakoon vetäisi puunoksa tuon kirotun lakin maahan, ja
sitten oli sama, juoksinko vai en, herra Minoussier'illä oli mitä
parhain todiste minua vastaan! Pirun Pauline!

— Pauline luuli tekevänsä hyvin, ystäväni, vastasi kirkkoherra


isällisesti, — ja hän on erinomainen vaimo, sen te kyllä tiedätte.

Chabonneaun mieli heltyi.

— On kylläkin, varsin oiva vaimo, ja niin herttaisia lapsia on hän


minulle lahjoittanut. Surullista sanoa, mutta on juuri niin, että jos ei
rakastaisi niin kovin lapsiansa ja vaimoansa, niin ei joutuisi niin
helposti kiusaukseen tehdä väärin. Ah, sen sanoinkin kyllä herra
määrille, rukoillen että hän jättäisi asian siksensä. Mutta se mies ei
ota korviinsa köyhien puheita!
— Osoititteko myöskin todellista katumusta? Lupasitteko luopua
salametsästyksestä?

— Mitä herra Minoussier välittää lupauksista! Minä puhuin hänelle


näin: »Herra määri, olen itse asiassa rehellinen mies, ja jos
kunniasanallani lupaan, etten enää koskaan metsästele teidän
alueillanne, niin pidän kyllä kaiken ikäni tuon lupaukseni.» Silloin hän
alkoi nauraa tuota hiljaista nauruansa, joka karmii nahkaa, ja vastasi
minulle: »Isä Chabonneau, kulutatte turhaan aikaanne, ja minä en
voi sietää valitusvirsiä. En ole teille ollenkaan suuttunut siitä, että te
metsästelette minun metsissäni. Miksikä ette kartuttaisi
omaisuuttanne, missä voitte! Minä taasen puolustan omaani, ja kun
nyt tällä kertaa olen saanut teidät kiinni, käytän sitä hyväkseni.
Oletteko rehellinen mies vai ette, se ei koske minua ollenkaan.
Menestys ei yleensä seuraa rehellisiä ihmisiä, jotka usein ovat
hölmöjä, vaan älykkäitä ihmisiä, jotka usein ovat konnia. Jos olisin
teidän ystävänne ja haluaisin antaa teille neuvon, niin en sanoisi:
Älkää harjoittako enää salametsästystä, se on väärin vaan minä
sanoisin: 'Älkää hukatko lakkianne, se on varomatonta!' Ja nyt
jättäkää minut rauhaan!»

Herttainen kirkkoherra oli ehdottomasti pannut kätensä ristiin,


keskeyttämättä silti Chabonneaun kertomusta.

— Näin siis, herra kirkkoherra, jatkoi talonpoika, — ettei minulla


ollut muuta neuvoa kuin lähteä tieheni, ja silloin mietin itsekseni:
»Jos tuohon tiikeriin kukaan voi vaikuttaa — enkä rukoilisikaan
armoa itseni takia, vaan pienokaisteni ja vaimoni tähden, — niin on
kirkkoherra ainoa, joka siihen pystyy!» Niin, siihen nähden ei ole
epäilemistäkään! Sellainen rakkikoira kuin herra määri onkin,
kunnioittaa hän kumminkin herra kirkkoherraa, ja vallan
erinomaisesti! Tuo kunnioitus juuri suo meille mahdollisuuden uskoa,
että hänelläkin on sielu, kuten meillä muilla kristityillä!

Kirkkoherran täytyi hymyillä. Hän oli ollut vain virka-asioitten


johdosta tekemisissä Fontanettes'in määrin kanssa, mutta hänen oli
täytynyt ihmetellä sitä suurta arvonantoa, jota hänelle oli aina
osoittanut tuo virkamies, joka muutoin oli pappien ilmetty vihollinen.

Eräänä päivänä oli herra Minoussier, lähtiessään kirkkoherra


Cyrillen luota, ojentanut hänelle kätensä ja sanonut jyrkkään
tapaansa, mutta mitä sydämellisimmällä äänellä:

— Herra kirkkoherra, tiedän kyllä, että pyhimyksiä ei ole olemassa,


mutta kaikki ihmiset toistavat, että te olette hyvä kuin pyhimys, ja
luulen kyllä, että te voisitte käydä sellaisesta… Kun olen vakuutettu,
että te väliin hoidatte minun asioitani tuolla ylhäällä, haluaisin kysyä,
sallitteko minun huolehtia asioistanne täällä alhaalla?

— Herra määri, oli kirkkoherra vastannut, kiittäen liikutettuna


herra Minoussier'iä, — joka ilta ja aamu rukoilen teidän puolestanne
taivaan Kuningasta. Jos te tahdotte hyväntahtoisesti rukoilla minun
puolestani maallisia vallanpitäjiä, niin pyytäkää että he antaisivat
minun elää ja kuolla täällä Fontanettes'issä. Siitä olisin teille perin
kiitollinen.

Tuo vähäinen tapahtuma johtui nyt kirkkoherran mieleen. Ottaen


sitten puheiksi Chabonneaun ilmaisemat epäilykset hän huudahti,
taputtaen Isäntä ystävällisesti olalle:

— Epäilemättä on herra määrillä sielu kuten meilläkin, teillä ja


minulla. Älkää luulko että Jumala häntä unohtaa tai oikeuttaa meitä
sellaisiin arvosteluihin. Ken tietää hänen tarkoitusperäänsä tuohon
sieluun nähden, jonka olemassaolon te haluaisitte kieltää! Pyhä
Paavalikin oli alkuaan vain fariseus… Mutta aluksi koetan nyt käyttää
ensi kertaa ja parhaani mukaan tuota vaikutusvaltaa, jota minulla
otaksutte olevan herra Minoussier'iin nähden. Älkää nukkuko kovin
huonosti, ystäväni, ja varokaa torumasta Paulinea! Pyytäkää
päinvastoin, että hän neuloo nimenne uuteenkin lakkiinne. Se
varoittaa teitä pudottamasta sitä muuanne kuin sinne, mistä se
vaaratta voidaan löytää. Olen lukenut jostakin tällaisen sananlaskun:
»Teko salattava jätä tekemättä!» Siinä on tosi sana. Jos ihmiset eivät
meitä näekään, lapseni, näkee meidät Jumala… ja se on paljoa
vaarallisempaa!

Chabonneau loittoni kuuluvin askelin maantietä pitkin. Hiukan


hajamielisempänä kuin ennen jatkoi kirkkoherra Cyrille ruusujen
kastelemista. Mutta kohtalo oli määrännyt, etteivät pappilan ruusut
saisi tänä iltapäivänä nauttia rauhassa tuota virvoketta. Kuului
kumeaa jyminää, ja pian pysähtyivät tomupilven ympäröimät
ajoneuvot tuon pienen portin edustalle. Ne olivat herra Léon
Minoussier'in, Fontanettes'in määrin huvivaunut.

Hän oli jo harmaantuva mies, mutta hänen kookas, kopearyhtinen


vartensa vaikutti reippaalta, hänen esiintymisensä oli perin säntillistä,
vieläpä komeaakin, ja napinlävessä hänellä oli, vielä puuttuvan
kunnialegionan nauhan asemesta, kansanvalistusosaston pieni
orvokki. Laskeutuen ajoneuvoista hän paljasti kunnioittavasti päänsä,
käydäksensä pappilan puutarhaan.

— Hyvää iltaa, herra kirkkoherra, sanoi hän, suu hymyssä ja käsi


ojennettuna. — Minulle kerrottiin teidän käyneen tänä aamuna
linnassa, ja kun käyntinne herätti mielessäni toiveita, että te
vihdoinkin sallitte minun tehdä teille jonkun palveluksen, niin
kiiruhdin tänne, vapauttaakseni teidät vaivasta tulla toistamiseen.

Ihastuneena Chabonneaun takia tästä hyvätuulisuudesta ja


suopeudesta, kirkkoherra vei herra Minoussier'in huoneeseensa. Se
oli varsin pieni, hyvin vaatimattomasti sisustettu ja vailla kaikkia
taide-esineitä. Mutta norsunluinen ristiinnaulitunkuva näytti
suojaavan sen kapeaa vuodetta, ja saviastioihin asetetut kukkavihkot
soivat juhlan sävyn noille pähkinäpuulla laudoitetuille seinille.

Määrin istuuduttua, kehoitusta noudattaen, huoneen ainoaan


nojatuoliin, ryhtyi kirkkoherra heti hyökkäykseen.

— Herra määri, sanoi hän, — olen teille sitäkin kiitollisempi


hyväntahtoisuudestanne ja vaivannäöstänne, kun todellakin pyytäisin
teiltä suurta armeliaisuudenosoitusta. Isä Chabonneau, joka
todellakin on arveluttavasti rikkonut teitä vastaan, on peräti
epätoivoissaan ja murtuneella mielellä…

Äkkiä katosi määrin ankarapiirteisiltä kasvoilta miellyttävä ilme,


joka oli ne kirkastamat. Epäävällä liikkeellä hän sai hurskaan
anomuksentekijän keskeyttämään lauseensa.

— Älkää lausuko pyyntöänne, rukoilen sitä teiltä, sanoi hän, ja tuo


rukous muistutti suuresti ehdotonta kieltoa. — Tulin tänne vakavin
toivein voida tehdä teille palveluksen, herra kirkkoherra. Mutta
nähkääs, vaikka tuo itse — ja hän viittasi töykeästi kädellään
seinäkomerossa olevaan ristiinnaulitunkuvaan — vaikka tuo itse
elpyisi eloon ja esittäisi minulle tarkoittamanne pyynnön, antaisin
täsmälleen saman vastauksen. Chabonneau on jo kyllin kauan
hävitellyt metsieni riistaa varoituksista huolimatta. Tällä kertaa
tapasin hänet verekseltä, ja nyt hän saa pitää hyvänään seuraukset.
Kirkkoherra oli tyrmistynyt tuosta puheesta ja ennen kaikkea mitä
syvimmin loukkaantunut halveksivasta tavasta, millä määri oli
puhunut hänen kalliista Vapahtajastaan, mutta hän hillitsi kumminkin
närkästyksensä.

— Tiedän yhtä hyvin kuin tekin, herra määri, että Chabonneau on


syyllinen tuohon rikokseen, vastasi hän mitä suurimmalla
lempeydellä. — Nuhtelin häntä jo ankarasti siitä ja teen sen vielä
uudelleenkin, siitä voitte olla vakuutettu. Mutta hän on luvannut
minulle ja lupaa teillekin, että hän on vastedes kunnioittava
omistusoikeuttanne. Ajatelkaa sitäkin, että hän on köyhä ja kenties
pikemmin altis kiusauksille kuin joku toinen, ottakaa huomioon, että
hänellä on vaimo ja kaksi pientä lasta…

Kuullessaan nuo sanat määri tyrskähti nauruun, tuollaiseen


hiljaiseen nauruun, joka Chabonneausta oli niin pöyristyttävää.

— Kuulkaas, herra kirkkoherra, sanoi hän, — tuo vanha virsi ei


oikein sovi teidän suullenne. Tuhat tulimmaista, minä tunnen sen
ennestään! Vaimo ja lapset… jollei sokea äiti ja raajarikko isä ja
muuta sellaista! Ei, nähkääs, kirkkoherra, minä olen liian ovela
mies… sellaista ei minulle pidä syöttää!

Kun nyt kirkkoherra vaikeni, tykkänään ymmälle joutuneena,


istuutui Minoussier mukavammin nojatuoliinsa, jatkaen puhettansa
kohteliaisuudella, johon sekaantui jonkunmoista kylmää ivaa:

— Herra kirkkoherra, niin erillänne maailman touhusta kuin te


täällä olettekin elänyt vuosikausia, on teidän kumminkin täytynyt
kuulla puhuttavan eräästä miehestä nimeltä Charles Darwin ja
kirjasta nimeltä »Lajien synty». En halua suinkaan käydä oppineesta
ja vielä vähemmän viisaustieteilijästä, ja tunnustan teille, että
minulle on kaikesta tuon englantilaisen luonnontieteilijän lorusta
jäänyt muistiin yksi ainoa lauselma, — mutta se onkin,
käytännölliseen elämään sovellettuna, arvokkaampi rikkautta. »Tapa
minut, muutoin minä surmaan sinut!» Tuo on minun mielilauselmani.
Opettakaa se Chabonneaulle, se voi kenties hyödyttää häntä. Mitä
itseeni tulee… niin näette, ettei minua ainakaan tähän saakka ole
tapettu.

Tuo häikäilemätön tunnottomuus tuotti kirkkoherralle kiihkeää


tuskaa ja saattoi hänet samalla tukalaan asemaan. Kuten äsken
Chabonneaun puhuessa, hänen hennot sormensa liittyivät yhteen
äänettömään rukoukseen.

— Teitä ei ole tapettu, mutta tekään ette ole surmannut ketään!


Oi, herra määri, älkää toki kerskatko tuollaisesta mielilauseesta, joka
on niin julma, niin tykkänään epäinhimillinen! Voisin vannoa, että te
olette parempi kuin itse luulette, ja…

— Te erehtyisitte, kirkkoherra, erehtyisitte tykkänään, vastasi


määri samaan kylmän kohteliaaseen ja hieman pisteliääseen sävyyn
kuin ennenkin. — Sillä jos Chabonneaun asiaan nähden noudatankin
vain ilmeistä oikeutta, niin ei silti ole sanottu, etten voisi soveltaa
tuota Darwinin lauselmaa tapauksiin, joissa oikeuteni olisi
kysymyksenalainen…

— Kuulkaapa, kirkkoherra, jatkoi hän, vetäen tuolinsa hiukan


lähemmäksi pöytää, johon kirkkoherra Cyrille nojasi, — en voisi
selittää syytä siihen, mutta te olette aina herättänyt mielessäni
ääretöntä luottamusta, niin määrätöntä luottamusta, että jos te
sanoisitte minulle, joka kuulun epäuskoisiin, kuten tiedätte:
»Vakuutan teille kunniasanallani, että Jumala on olemassa!» niin
joutuisin melkein kiusaukseen uskoa teitä. Mutta jättäkäämme
tämä… Se, mitä tarkoitan sanoa, on että minua haluttaisi antaa teille
hiukan outo todiste tästä luottamuksestani… en voi sanoa
tunnustuksella, sillä tuohon sanaan sisältyisi katumuksen käsite, ja
sitä en tunne vähääkään… vaan uskomalla teille salaisuuden, joka
suo teille tilaisuuden nauttia paremmuudestanne minun
kustannuksellani.

Kirkkoherra pudisti päätänsä tyytymätönnä.

— Hyvä herra, sanoi hän, — kaikki nämä puheet tuntuvat minusta


tosiaankin täysin turhilta, enkä lainkaan käsitä…

— Koetan esittää asiat lyhyesti, keskeytti määri hänen lauseensa


jyrkkään tapaansa, joka ei sietänyt vastaväitteitä, alkaen samassa
kertomuksensa.

— Herra kirkkoherra, minä olin nuoruuteni päivinä varsin


vähäpätöinen henkilö ja niin köyhä, että ollessani jo naimisissa ja
kahden lapsen isä ja palvellessani vähäisestä palkasta eräässä
toimituskaupassa Pariisissa, missä toivoin edistyväni nopeammin
kuin maaseudulla, olin pakotettu jättämään vaimoni ja poikani
Yonneen, anoppini huomaan, odottaen parempia aikoja, jolloin voisin
kutsua heidät luokseni…

Työtä en pelännyt, sen saatte uskoa, ja tunsin pystyväni


vaurastumaan, kun vain siihen saisin riittävästi aikaa. Mutta eräänä
päivänä — kävisi liian pitkäksi esittää minkä seikkojen johdosta —
huomasin joutuneeni ahtaalle, olevani aineellisen perikadon partaalla
mitättömän rahamäärän takia. Minun täytyi tavalla millä hyvänsä
saada muutamia kymmeniä louisd'oreja. Hyvä Jumala… en nyt tosin
tahdo väittää, että niiden hankkimiseksi olisin ollut valmis vaikka
salamurhaan… mutta kun tulin erääseen toimistohuoneeseen, jossa
minulla tavallisesti ei toimeni takia ollut mitään tekemistä, ja
havaittuani olevani siellä yksin näin erään auki jääneen laatikon
pohjalla kaksi viidensadan frangin rahaa, joita mikään ei estänyt
minua ottamasta, niin otin ne hetkeäkään empimättä…

Tässä keskeytti määri kertomuksensa raskaasti hengittäen,


voimatta vastustaa mielen järkytystä, jonka tuon hetken
muisteleminen aiheutti. Mutta hän ei ollut huomannut että
kirkkoherra oli käynyt hyvin kalpeaksi ja silmäili häntä oudon
kiinteällä katseella.

— Sanoin jo, että tehdessäni tuon tekoni olin luullut olevani yksin,
mutta olinkin erehtynyt. Verhon tai huonekalujen varjossa oli istunut
joku — aurinko oli jo laskemaisillaan ja varjot eivät voineet olla niin
selväpiirteisiä — muuan paikananoja, joka odotti isäntääni ja joka oli
ohjattu tähän huoneeseen. Epäilemättä hän oli nähnyt tekoni, mutta
hän ei ollut puhunut mitään, ei ollenkaan tullut, esille, eikä kukaan
muu ollut nähnyt minun menevän tuohon huoneeseen tai tulevan
sieltä. Illan tultua etsittiin turhaan noita tuhatta frangia, jotka minä
jo olin toimittanut piilopaikkaan, ja niiden katoamisesta ei syytetty
minua, vaan tuota tuntematonta miestä, paikanhakijaa, jonka
kalpeus ja mielenjärkytys oli kiinnittänyt johtajan huomiota. Kaikki
kehittyi minun edukseni. Pidetyssä kuulustelussa ei kukaan
ajatellutkaan edes tiedustella minulta mitään, niin vieraaksi koko
asialle minua katsottiin. Mitä tuohon miesparkaan tulee, niin ei
hänellä ollut mitään todistetta syyttömyydestään, ei mitään
mahdollisuutta todistaa minun syyllisyyttäni, ja epäilemättä
puolustautuminen kävi hänelle tuiki vaikeaksi. Ilmeistä on, että hänet
olisi toimitettu vankilaan mitä pahimpana veijarina, jollei
liikkeenomistaja olisi katsonut edullisemmaksi jättää asiaa siksensä,
ettei siitä koituisi häpeää hänen kauppahuoneellensa. Muukalaiselle
syydettiin vasten silmiä kaikki halveksiminen, joka hänen katsottiin
ansaitsevan, ja hänet velvoitettiin lähtemään Pariisista… Minä olin
pelastettu. Siitä on nyt jo kulunut viisikolmatta vuotta, ja voisin
vannoa, etten ole näiden viidenkolmatta vuoden kuluessa tehnyt
ainoatakaan tekoa, jonka takia minun pitäisi punastua… jos nimittäin
punastuminen kuuluisi tapoihini. Olin saavuttanut mahdollisuuden
olla rehellinen ja tulin rehelliseksi. Nyt olen rikas ja olen jo aikoja
sitten lähettänyt tuolle kauppahuoneelle nimeäni ilmoittamatta
maksun muodossa nuo rahat, jotka sieltä… varastin. Nyt olen minä
suuressa arvossa pidetty henkilö, jos en olekaan liioin rakastettu.
Kaiken päälliseksi olen kuntani määri, ja on olemassa suuria
edellytyksiä, että ensi vaalien jälkeen herään jonakin aamuna
piirikuntani edustajana. Ajatelkaapas, missä olisinkaan tänään, jos
tuolla miehellä, jota syytettiin minun asemestani ja jota minä varoin
puhdistamasta noista syytöksistä, olisi ollut pienintäkään
mahdollisuutta kääntää syytökset minuun? Kohtalo ei suonut hänelle
mitään keinoa syöstä minua perikatoon… ja minä syöksin hänet.

En tiedä ollenkaan, lopetti muinoinen kauppavirkailija


kertomuksensa, tehden huolettoman kädenliikkeen, — miten tuon
onnettoman miehen sitten on käynyt.

Fontenettes'in määri ei ollut huomannut, mikä riutumuksen ilme oli


tullut kirkkoherra Cyrillen kasvoille ja kuinka kalpeaksi hän oli käynyt.
Mutta kun hän kertomuksensa päätettyään ehdottomasti kääntyi
kärsivälliseen kuuntelijaan päin, hämmästytti häntä hänen
kasvojensa ylevä tyyneys. Nähdessään papin painavan päänsä alas,
hän hetken tunsi melkein katumusta siitä, että oli levollisella
kertomuksellaan konnantyöstään omien muistojensa loalla tahrannut
tämän harvinaisen puhtaan mielen kirkkautta, — mutta tuohon
katumukseen sekaantui samalla ylpeä ja luonnoton tyydytys siitä,
että hänen oli onnistunut hämmästyttää, kauhistuttaa tuota viatonta
olentoa, joka oli vapaaehtoisesti paennut ihmiselämän
koettelemuksia ja taisteluita.

Kirkkoherra Cyrille katsoi yhä vielä sanaakaan puhumatta lattiaan,


missä auringon viime säteet leikiskelivät. Äkkiä hän suoristautui, ja
äänellä niin vakavalla, niin järkytetyllä, ettei määri ollut vielä
konsanaan sellaista kuullut, hän ryhtyi vuoroonsa puhumaan:

— Pappisvirassa tulee tuntemaan paljon ihmisiä ja saa tietoonsa


paljon asioita. Minä olen tuntenut tuon onnettoman miehen, jonka
kohtalosta teillä ei ole tietoa, ja teidän kertomuksenne tapahtumista
vastaa täsmälleen hänen suustaan kuulemaani kuvausta niistä,
lisäten siten asiaan kohdistuvia tietojani ainoastaan rikollisen nimellä.
Mutta eräs yksityiskohta on jäänyt teiltä huomaamatta. Sinä
hetkenä, jolloin te pelokkaana ja hätiköiden piilotitte nuo kaksi
viidensadan frangin rahaa salkkuunne, putosi povitaskustanne
lattialle muuan paperi, arvatenkin teidän sitä huomaamattanne. Se
oli puolen arkin paperi, johon oli kirjoitettu loppu samana aamuna
tulleesta kirjeestä… Jäätyään yksin tuo mies, joka rajattoman
kauhun herpaamana oli ollut tuon… heikkoutenne todistajana, otti
paperin, tehden itsensä syypääksi siihen epähienouteen että luki
sen. Hän jätti sen minulle, ja koska minulla nyt on siihen tilaisuus,
niin annan sen teille takaisin.

Hitaasti, vaivalloisesti, ikäänkuin vuosien taakka äkkiä olisi käynyt


raskaammaksi kantaa, nousi kirkkoherra paikaltansa, avasi lippaan,
otti siitä paperin, jossa vielä voi nähdä kevyen naiskäden
kirjoituksen, jonka aika oli haalistanut. Hän ojensi paperin määrille,
— se oli hänen mainitsemansa kirjeen loppu.
»… Hyvästi siis, rakas puolisoni», puhuivat nuo pienet, vaaleat
kirjaimet, »tai pikemminkin näkemiin! Oi kuinka ikävöin saada
syleillä sinua. Näetkös, minua kammottaa tuo suuri Pariisi,
kammottaa kaiken sen takia, mitä siitä tiedän, ja kaiken sen takia,
mitä siitä en tiedä. Ja sinä et tunne siellä ketään! Eikö siellä olla
ynseitä muukalaisille, noille maaseutulaisraukoille, joista pariisilaiset
usein tekevät pilkkaa? Oi, jospa siellä kohtaisit ystävän, veljen, joka
sinua auttaisi ja tukisi! Joka ilta, Léon'ini, annan lasten polvistua
viereeni, ja me rukoilemme Jumalaa varjelemaan sinua kaikista
vaaroista ja antamaan sinut meille jälleen, sillä me rakastamme
sinua niin kovin!

Vaimosi
Gabrielle.

Pienokaiset syleilevät sinua.

Chéroyssa, 15 p. huhtikuuta 18——»

Herra Minoussier'in kädet vapisivat kiihkeästi, lehti liiti maahan.


Silmät levällään hän harhailevin katsein näytti odottavan selvitystä
papilta.

Valkotukkainen kirkkoherra seisoi pöydän ääressä kasvot


kalmankalpeina, niin läpikuultavan kalpeina, että niistä ilmeni hänen
ääretön ruumiillinen heikkoutensa. Hänen silmänsä kohtasivat tuon
niitä hakevan, harhailevan katseen.

— Herra määri, alkoi hän jälleen puhua, — tuo köyhä


paikanhakija, jonka ihmiset tuomitsivat teidän asemestanne, ei ollut
koskaan lukenut »Lajien syntyä» eikä tiennyt mitä Darwin on
kirjoittanut. Mutta hän oli lukenut evankeliumit ja hän tiesi että
muuan Jeesus Natsarealainen on sanonut: »Rakasta lähimmäistäsi
kuten itseäsi!» Sitäpaitsi oli tuo poika epäilemättä hyvin lapsekas ja
typerä, sillä tuon vaimoparan kirje, jossa puhuttiin pienokaisista, ei
naurattanut häntä ollenkaan, vaan herätti hänessä kiihkeän halun
puhjeta kyyneliin… Ja hän ajatteli itseksensä: »Ken tietää, ehk'ei tuo
mies ole niin turmeltunut, kuin voisi luulla. Ehkä jotkut erinäiset
asianhaarat saattoivat hänet erityisen alttiiksi kiusaukselle… Ja
hänen vaimonsa on ilman pienintäkään epäilystä hyvä ja hurskas, ja
hänen lapsensa ovat pieniä, ja he rukoilevat kaikki poissaolevan isän
puolesta. Tämän kirjeen avulla minun olisi helppo vapautua kaikista
kärsimyksistä, joita tästä asiasta voi koitua. Mutta silloin joutuisi
tämä puoliso, tämä isä, vankilaan, missä hän seurustelisi huonojen
ihmisten kanssa, jotka turmelisivat hänet tykkänään… ja nuori vaimo
ja nuo pienet lapset vuodattaisivat haikeita kyyneleitä!» Näitä
seikkoja hän tosiaankin mietiskeli ja paljon muuta lisäksi, tuo
houkkioparka… ja niin hän piti kirjeen salassa… Teidän sitä
aavistamattannekaan hän koetti olla tuo ystävä, veli, jota vaimonne
rukoili teille taivaalta… Rukous pelasti teidät, teidät, joka ette usko
Jumalaa olevankaan!… Epäluulot kohdistuivat tuohon järjettömään
poikaan, häntä kohdeltiin rikollisena. Hän vakuutti viattomuuttaan,
mutta hän ei sanonut sanaakaan, ei antanut vihjaustakaan, joka olisi
johtanut tutkijat syyllisen jäljille… teidän jäljillenne… Hän muisti että
tuo itse, kuten te sanoitte, kärsi häpeällisen kuoleman, koska hän,
Jumalan poika, tahtoi kantaa koko ihmiskunnan synnit… Silloin
ajatteli hän, että kurja Aadamin poika kenties jaksaisi kantaa yhden
ainoan veljensä rikoksen ja elää siten, kuin hänen Vapahtajansa oli
kuollut… Hän kärsi tuikeita tuskia… Sitten Jumala otti korviinsa
hänen rukouksensa ja antoi hänelle rauhan… Hän rupesi papiksi.

Määri oli luonut katseensa maahan, ja vähitellen oli koko hänen


ruumiinsa noudattanut samaa tunteen kehoitusta. Hän oli
kumartunut kumartumistaan, painanut otsansa maahan, äärettömän
nöyrtymyksen vallassa.

— Anteeksi! mumisi hän.

Hän olisi halunnut puhua enemmän, tulkita tunteita, jotka


kiihkeinä, sekavina täyttivät koko hänen olentonsa, ennen
tuntematonta kaipuuta, jonka päämäärästä hän ei ollut selvillä,
haluansa vaipua olemattomiin, päästäksensä ilkeydestään, — — —
sitten rajatonta ihailuansa, joka hänestä tuntui häntä kohottavan,
samalla kuin se saattoi hänet yhä selvemmin tuntemaan oman
kurjuutensa. Ja liikutuksen vallassa, joka oli hänen tahtoansa
voimakkaampi, hän otti, ennenkuin kirkkoherra ehti sen estää, tuon
pyhän miehen käden omaansa ja pusersi sille huulensa.

— Herra kirkkoherra, sopersi hän, — en ansaitse


anteeksiantoanne. Minun on koetettava ansaita se tekemällä hyvää,
rakkaudentöillä…

Korina hänen voimakkaasta rinnastansa keskeytti hänen


puheensa.

— Minä en ole uskovainen, jatkoi hän vihdoin, — mutta kunnioitan


uskoa, joka on tehnyt teidät sellaiseksi kuin olette… Herra
kirkkoherra, tahdotteko rukoilla minun puolestani?

— Olkaa siunattu, veljeni, tuon pyyntönne tähden, vastasi


kirkkoherra Cyrille mitä suurimmalla lempeydellä. — Olen ottanut
menneisyyden puheiksi, johtaakseni teidät Jumalan luo. Johtakoon
hän teitä valollansa ja antakoon teille anteeksi, kuten minä jo aikoja
sitten olen antanut teille anteeksi!
Sitten hän polvistui, ja sanoin, jotka tuottivat rauhaa, lohtua,
virvoitusta murtuneelle mielelle, hän uskoi asiansa Jumalalle, joka on
sallinut lohdunsanan lausuttavaksi ristiinnaulitulle ryövärille ja
julistanut anteeksiannon syntiselle vaimolle. Pienestä huoneesta,
jonka pimeä jo verhosi, kohosi hänen rukoileva äänensä:

— Isä meidän, joka olet taivaassa…

*****

Aurinko oli jo vaipunut kukkuloitten taakse ja ensimmäiset tähdet


tuikkivat illan tummassa sinessä, kun kirkkoherra Cyrille vihdoinkin
voi jatkaa puutarhansa kastelemista. Hän oli vielä kalpea
liikutuksesta ja tunsi ruumiinsa yhä vapisevan, mutta hänen mielensä
oli onnellinen. Nähdessään kitukasvuisella varrella ihanan valkoisen
ruusun, joka oli odottamatta auennut iltapäivän kuluessa, hän
ajatteli, että monien sielujen laita on kuten kukkasten, että ne väliin
puhkeavat ihanaan kukintaan hetkenä, jolloin sitä vähimmiten
odottaa.

Kiitollisuudentunteensa valtaamana herttainen kirkkoherra


kumartui hengittämään tuon uuden ruusun sulotuoksua, ja kaksi
suurta kyyneltä tipahti sen lehdyköille.

Varmaankin olisivat nuo kyyneleet ihmeitten aikakautena saaneet


pensaan puhkeamaan kukkasia täyteen!
EMÄNTÄ GERVAISE.

Istuen levollisena hopeanharmaan aasinsa selässä, joka oli koristettu


tupsuilla ja siisti kuin lelu, matkasi emäntä Gervaise maantietä pitkin,
saapui kirkkokentälle ja pysähtyi pappilan edustalle.

Hän oli viehättävä vaaleassa puvussaan, tummine hiuksineen ja


veitikkamaisuutta ja nuoruuden raikkautta säteilevine silmineen! Kun
hän täten kulki kylän läpi, tarkkasivat häntä kaikki. Kaikkien
kasvoilla, joita hän kohtasi, kuvastui harras ihailu, halu tehdä hänelle
palveluksia, osoittaa kunnioitusta ja ystävyyttä. Vanhukset viittoelivat
hänelle ystävällisesti, nuoret tervehtivät häntä, pienet lapset
kurottivat käsivartensa häntä kohden. Hän puolestansa nyökäytteli
pitsipäähineen verhoamaa päätänsä herttaisesti kaikille, hymyilevänä
ja hilpeänä, ja ihmettelemättä liioin tuota kunnioitusta, jonka hän
niin hyvin ansaitsi.

Jäätyään Aunettes'in myllärin kuollessa leskeksi kahdenkymmenen


vuoden iässä, oli emäntä Gervaise pitänyt hallussaan kaikki
puolisonsa tilukset, pelkäämättä työtaakkaa, jonka arveltiin käyvän
hänelle varsin raskaaksi ja vaikeaksi kantaa. Toimeliaisuudellaan,
rehellisyydellään, järjestyksenrakkaudellaan ja säästäväisyydellään
hän oli, vastoin muiden odotuksia, saavuttanut mitä oivallisimmat
tulokset ja siten saanut palkinnon tarmokkaista ponnistuksistaan ja
antamastaan hyvän tahdon ja kestävyyden esimerkistä.

Koko lähiseudulla oli Aunettes'in mylly kuuluisa kukkeista


hedelmätarhoistaan, kullahtavista rypäleistään, rehevistä
laitumistaan, viljavista vainioistaan, ja maito oli siellä parempaa,
vihannekset tuoreempia, siipikarja lihavampaa kuin missään muualla.
Tiedettiin myöskin, että emäntä Gervaisen tilavassa keittiössä aina oli
tarjona lautasellinen lientä ja raha-almu köyhille, jotka kolkuttivat
akkunaluukkuun. Oi tuo reipas, kunnon ahertelija, joka oli yhtä hyvä
kuin kaunis, älykäs, selväjärkinen ja viehkeä, ja niin siro monine
koruineen. Kylässä ei ollut ainoatakaan ovea, jota ei olisi ilomielin
avattu selki selälleen Aunettes'in myllyn omistajattarelle. Ja pappilan
ovi ei ollut mikään poikkeus, — sen voi huomata kirkkoherran
tervehdyksestä, vanhan palvelijan kiireestä, heidän nähdessään
pienen aasin keskeyttävän velton kulkunsa köynnöskasvien
koristaman vaatimattoman porraskäytävän luona, joka oli tuttu niin
monelle lohtua tai apua tarvitsevalle.

Kirkkoherra Gratien otti emäntä Gervaisen vastaan puutarhassaan,


missä vanhus lehtimajassa istuen nautti toukokuun lämpöisestä
päivänpaisteesta, joka kultasi viiniköynnökset, viinipuiden runkoa
pitkin kiipeilevien ruusujen suloudesta ja kurjenpolven viehkeästä,
voimakkaasta sulotuoksusta, joka kohosi kukkalavoilta. Keskustelu,
joka oli alkanut puoli ääneen ja joka ilmeisesti koski vakavia asioita,
kesti melkein neljännestunnin, mutta jolleivät linnut olisi viserrelleet
niin perin riemukkaasti kirsikkapuissa, jotka jo alkoivat hieman
punoittaa, kuinka hämmästyneitä ne olisivat olleetkaan siitä, mitä
olisivat kuulleet! Tuo mieletön emäntä Gervaise rohkeni neuvotella
kirkkoherran kanssa pukuasioista! Hänen vilkkaasta juttelustaan voi
eroittaa sanoja sellaisia kuin »nauhat, musliini»… Ja ihmeellisempää
vielä oli, että kirkkoherra toisti nuo sanat mitä ystävällisimmällä
äänellä… Niin päätettiin siis, että emäntä Gervaise hankkisi kuudelle
kylän köyhimmistä tytöistä puvut ensimmäistä ehtoolliskäyntiä
varten.

Oli tosiaankin viehättävää jutella kirkkoherran kanssa tuossa


kurjenpolven tuoksun täyttämässä puutarhassa! Emäntä Gervaise
viivähti siellä, ihaillen kirsikkapuita, jotka toden totta olivat
pitemmälle kehittyneitä kuin Aunettes'issä, ja sikurikasveja, joiden
lehdet olivat niin valkoisia ja maukkaannäköisiä, että häntä halutti
iskeä niihin hampaansa. Silloin katsoi kirkkoherra Gratien hetkeä
otolliseksi erään arkaluontoisen tehtävän suorittamiseen, jonka joku
oli hänelle uskonut. Tämä »joku» oli Jacquin Baudru, Mesnil-Roux'in
isäntä. Emäntä Gervaise oli kieltäytynyt ottamasta vastaan hänen
nimeänsä, omaisuuttaan ja sydäntään, mutta se ei ollut lamauttanut
hänen rohkeuttansa, vaan hän oli toivonut kirkkoherran voivan
johtaa asian onnelliseen ratkaisuun.

— Voi hyvä kirkkoherra, tekö myöskin!… huudahti tuo nuori leski


äänellä, joka olisi liikuttanut itse Brutustakin.

Ja kun kirkkoherra lempeästi huomautti häntä siitä, että Jacquin


Baudru oli varsin hyväluontoinen mies, että hänellä oli hienoja
sukulaisia ja että hän oli hyvin rikas, huudahti Gervaise:

— Niin juuri, hän on aivan liian rikas… ja liian ruma! En minä pidä
hänestä ollenkaan!

— Mutta, tuumiskeli kirkkoherra, — Marcellin Vannier'in kävi yhtä


huonosti…
— Hän oli liian kaunis, hän puolestansa! Ei ole olemassa mitään
sen typerämpää kuin kaunis mies! Marcellin Vannier haaveksi
myllystäni… ja myllyni ei välittänyt hänestä. Kun miehet, joille en ole
omistanut ainoatakaan ajatusta, tulevat kosimaan minua, silloin en
voi muuta kuin nauraa! Minä panen arvoa huolettomalle elämälleni,
vapaudelleni, ja olen tyytyväinen nykyisissä olosuhteissani.

— Mutta puhukaamme nyt hauskemmista asioista, jatkoi hän, —


te saatte koko kuormallisen ruusuja. Puutarhan pieni muuri oli aivan
valkeana niistä ja minä käskin Jean Fadet'in laatimaan niistä
kukkavihkoja. Ne ovat aiotut pantaviksi Neitsyt Marian alttarille ensi
sunnuntaina.

Kirkkoherran kasvot kirkastuivat hänen kuullessaan Jean Fadet'in


nimen.

— Jean Fadet! Kuinka hän voi, tuo rakas lapsukainen?

Emäntä Gervaise tyrskähti nauruun, raikkaaseen kuin lähteiden


lirinä keväällä.

— Aivan kuten ennenkin, herra kirkkoherra! Hän on mykkä kuin


kala ja arka kuin ihmissusi! Mutta itse asiassa on hän kelpo poika ja
varsin ahkera, mitä hänestä sanottakoonkaan. Vahinko vain että hän
on niin typerän näköinen.

— Typerän? Mutta sitä ei hän lainkaan ole! vastusteli vanha pappi.

Pontevan puolustuksensa selitykseksi hän lisäsi:

— Nähkääs, minä pidän paljon Jeanista. — Niihin aikoihin kuin


tulin tähän seurakuntaan, opin hänet rippikoulussa tuntemaan varsin
uutterana oppilaana, ja tuo omituinen olento on aina kiinnostanut
minua. Vaikk'ei hän ole sen puheliaampi minun seurassani kuin
muidenkaan, olen havainnut hänessä varsin kunnioitettavia
luonteenominaisuuksia. Minun ei olisi lupa sanoa sitä teille, sillä Jean
on pyytänyt minua pitämään sen salassa, mutta ajatelkaas, tuo
poikaparka harjoittaa hyväntekeväisyyttäkin, minun välitykselläni,
pysyen itse salassa! Hänellä on mitä hellin sydän, hän on luotettava
ja uskollinen, siitä olen varma… ja hän on tosiuskovainen, noita,
jotka etsivät Herraa pienen lapsen viattomuudella.

— Vai harjoittaa hän todella hyväntekeväisyyttä ja on niin hyvä ja


luotettava — tuo rakas Fadet-parka! vastasi Gervaise lämpimästi. —
No niin, siis pidän huolta noiden tyttösten puvuista… Näkemiin, herra
kirkkoherra!

— Onnellista paluumatkaa ja paljon kiitoksia, emäntä Gervaise!

*****

Jäätyään yksin kirkkoherra Gratien unohti Jean Fadet'in,


ajatellessaan rippilastensa iloa, sitten muisteli hän emäntä Gervaisen
hilpeän hyväntahtoista olentoa ja lopuksi johtuivat hänen
ajatuksensa Jacquin Baudrun vastoinkäymiseen. Tuo nainen tuntui
kuin luodulta tuottamaan iloa ja olemaan kodin kunniana,
kasvattamaan lapsia, jotka rakastaisivat Jumalaa ja kunnioittaisivat
velvollisuuden käskyjä ja joista hän kehittäisi kunnon työntekijöitä,
rehellisiä kansalaisia ja, tarpeen vaatiessa, kunnon sotureita… mutta
hilpeästi nauraen hylkäsi hän edullisimmatkin aviotarjoukset.
Aikoikohan hän sitten todellakin jäädä leskeksi?

Tuota kysymystä, joka heräsi kirkkoherran mielessä hartaan


kunnioituksen johdosta, mitä hän tunsi emäntä Gervaiseä kohtaan,
pohdittiin kylässä varsin usein. Hyväntahtoiset ihmiset ajattelivat,
että niin rikas, kaunis ja vapaa valintaansa nähden kuin myllyn
omistajatar oli, hän varmaankin valitsisi jonkun kaupunkilaisherran,
mutta pahansuovat sanoivat salaperäisin ilmein:

— Entä Jaillou? Voisi vaikka lyödä vetoa, että hän ottaa Jailloun,
jahka tuo mies uskaltaa kosia!

Jaillou oli ainoastaan myllyn isäntärenki, mutta tuollainen avioliitto


ei olisi herättänyt mitään pahennusta. Maalaisväestön keskuudessa
ovat luokkarajat siksi epämääräiset, ettei koskaan pidetä kovin
pahaa ääntä, jos joku meneekin avioliittoon henkilön kanssa, joka on
alhaisemmassa asemassa kuin hän itse. Sattuuhan esimerkiksi varsin
usein, että myllärin tytär menee isänsä apulaisen vaimoksi. Jaillou oli
roteva, ahkera talonpoika, jonka järkeä ei liioin käynyt kehuminen,
mutta joka sai paljon työtä suoritetuksi ja piti itseään jossakin
määrin talon tukena. Hän seurasi väliin Gervaisea kaupungin torille,
ja vähempikin olisi riittänyt panemaan suupalttien kielet liikkeelle.
Isäntärenki ei suinkaan tehnyt mitään saadaksensa niitä
vaikenemaan. Tuontapaiset huhut saattoivat talon muut palvelijat,
äreän vanhanpiian Marion'in, joka hoiti keittiön ja karjapihan, ja
Mathurin'in ja Clauden, jotka toimittivat peltotyöt, samaten kuin
kaikki nuo työmiehet, jotka otettiin avuksi kiireisenä aikana,
osoittamaan hänelle aivan erinäistä arvonantoa, eikä häntä suinkaan
haluttanut tehdä niitä tyhjiksi. Jean Fadet, hän, joka oli viides pyörä
vaunuissa, kuten usein sanottiin, ei ottanut korviinsa noita juoruja.
Mutta hänestä oli niin vähän haittaa, ettei Jaillou viitsinyt
koettaakaan saada häntä niitä uskomaan.

Mitä emäntä Gervaiseen tulee, ei hän tiennyt mitään noista


kulkupuheista, jotka eivät voineet häntä vahingoittaa, niin suuressa
arvossa kuin häntä pidettiin. Peräti terävä-älyinen kuten oli, piti hän
Jaillouta täydellisenä pölkkypäänä. Muutoin ei hän aavistanutkaan,
palatessaan nyt rauhallisesti kotiinpäin, muistamatta enää Jacquin
Baudrua tai Marcellin Vannier'ia, että muita niin kiinnosti hänen
avioliittokysymyksensä, jota hän itse ajatteli niin tuiki vähän.

Tultuaan myllylle hän kulki puutarhan läpi, missä Jean Fadet riisteli
kukkia muuria peittävästä köynnösruususta. Väliin joku
kiinnitarrautunut varsi sai koko säleistön huojumaan, ja liiaksi
auenneista kukista putoilivat terälehdet maahan valkoisen
perhosparven kaltaisina. Jean näytti nauttivan tuosta ihanan tuoksun
sulostuttamasta työstään. Hän oli täyttänyt sadolla jo kaksi koppaa,
kun emäntä Gervaise saapui, lausuen hänelle tervehdyksen.

— Kirkkoherra puhui minulle sinusta, Fadet, hän pitää sinua


suuressa arvossa, sanoi hän ystävällisesti.

Ja vastausta odottamatta hän huudahti:

— Oi kuinka kauniita ruusuja ja lehtiä, mikä viehättävä


kukkassade,
Fadet! Koko tuo kukkien peittämä muuri olisi vietävä sunnuntaiksi
kirkkoon tai tielle, missä juhlasaatto kulkee. Katsos Fadet, kuinka
Jumala osaa paremmin kuin me koristaa alttarinsa!

Jean Fadet oli tuskin keskeyttänyt työtänsä.

— Niin kyllä, rouva, vastasi hän lyhyesti.

Sitten hän lisäsi:

— Kirkkoherra on kovin hyvä…

Senjälkeen hän taas tykkänään antautui työhönsä.


*****

Jean Fadet, löytölapsi, joka oli löydetty äskensyntyneenä kirkon


oven edustalta eräänä markkinapäivänä noin kaksikymmentä vuotta
aikaisemmin, vuoden 1830 paikkeilla, ja jonka Aunettes'in mylläri
säälintunteen valtaamana oli ottanut kasvatiksensa, oli omituisin
olento mitä voi kuvailla.

Aikaisimmasta lapsuudestaan saakka oli hän hämmästyttänyt


ihmisiä eriskummaisella käytöksellään. Hän oli kartellut ikäisiänsä,
hakien yksinäisyyttä. Kun häneltä kysyttiin jotakin, vastasi hän:
»Kyllä!» taikka »Ei!» Pitkät ajat oli luultu, että siinä oli likimmittäin
koko hänen sanavarastonsa, kunnes hänen kuultiin eräänä päivänä
pitävän kaniinikopin edustalla niin sievän, niin lystikkään puheen,
että oltiin vallan ihastuneita.

Koulussa ei Jean saavuttanut mitään menestystä, mutta lukeminen


oli hänen mielityötänsä. Kun muut lapset sunnuntaisin olivat
pallosilla leikkikentällään, käyskenteli hän kedoilla ja metsissä kirja
kädessä. Talvella hän asettui pesävalkean ääreen, kyyristyen kokoon,
ettei häntä huomattaisi, ja hän luki tai haaveksi tuntimääriä, tuleen
tuijottaen.

Hän ei antanut kenellekään aihetta valituksiin, hän oli lempeä ja


kärsivällinen. Kirkkoherra Gratien ei ollut koskaan nähnyt
rippikoulussa sen hartaampaa oppilasta. »Autuaita ovat
yksinkertaiset!» sanoi hän väliin niille, jotka tekivät pilkkaa poikasen
omituisuuksista. Ja hyväntahtoisella sanalla osasi hän loitsia
hymyilyn noille alakuloisille huulille.

Suureksi tultuansa oli Jean säilyttänyt tuon viattoman uskonsa,


tuon nöyrän lempeytensä. Mutta senjälkeen kuin tauti oli temmannut
pois hänen hyväntekijänsä, Aunettes'in myllärin, muutamia
kuukausia senjälkeen kuin hän oli mennyt avioliittoon, oli Jean'in
arkuus käynyt yhä silmiinpistävämmäksi.

Tuo kahdenkolmatta ikäinen nuorukainen oli kookas, laiha, kalpea,


hänen silmiensä ilme oli surumielinen, ja tukka hänellä oli pitkä kuin
jonkun koomillisen oopperan koulunopettajalla. Hänelle oli annettu
lisänimi »Fadet», joka paikkakunnan kielikäytön mukaan merkitsi
eriskummaista, haaveissaan elelevää ihmistä.

Häntä pilkattiin siitäkin, ettei hän käynyt muiden nuorukaisten


kanssa kapakoissa eikä välittänyt mennä tanssimaan, kun »Kultaisen
viiniköynnöksen» isäntä hankki viulunsoittajia nuorisoa huvittamaan.

Häntä viehätti yhä edelleen lukeminen ja haaveelliset kävelyretket


kautta tienoon. Toisten tanssiessa hän käveli, ja heidän nukkuessaan
hän luki. Työstänsä hän piti tarkkaa huolta. Myllytyössä oltaessa hän
usein hämmästytti toisia jollakin lyhyellä selityksellä seikoista, joita
vuosimääriä oli tehty vain vanhan tavan perusteella, ja keksimällä
pulman sattuessa neuvon, rakkaista kirjoistaan saamiensa opetusten
avulla.

Mutta tästä huolimatta oli Jean Fadet, kuten kaikki, jotka täyttävät
velvollisuutensa siitä kovaa ääntä pitämättä, toisten epäsuosiossa.
Vähitellen oli hän joutunut palvelijoiden silmätikuksi. Aterioitaessa oli
hän alituisesti heidän pilkkansa esineenä. Ruuat eivät muka
kelvanneet hänelle, hän söi kuin mikäkin herra, hänen suustaan oli
mahdoton saada esiin kahta lausetta peräkkäin.

Väliin emäntä Gervaise, säälin valtaamana, käski pilkkaajien


vaieta. Toisin kerroin hän itse, niin hyväntahtoinen kuin olikin, kävi
kärsimättömäksi, — ei tosin Jean'in tavoista, vaan hänen
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebooknice.com

You might also like