A note of where to read in the micronaut User Guide (http://docs.micronaut.io/latest/guide/index.html). The target is the document of ver1.3.4.
1 Introduction
So-called "explanation". There is a background explanation.
1.1 What's New?
Change history from the past version. There is a description of the dependent library.
2 Quick Start
The entire Chapter 2 explains the procedure for creating the Hello world app.
2.1 Build/Install the CLI
Explanation of various installation methods.
2.1.1 Install with Sdkman
Omitted.
2.1.2 Install with Homebrew
Omitted.
2.1.3 Install with MacPorts
Omitted.
2.1.4 Install through Binary on Windows
Omitted.
2.1.5 Building from Source
Omitted.
2.2 Creating a Server Application
The procedure for creating an application is explained in order.
There is a simple controller source and a description of the @ Controller
and @ Get
annotations.
2.3 Setting up an IDE
Not only the description of each IDE, but also the description of the main class.
2.4 Creating a Client
A sample usage of the HTTP client function of micronaut. Explain each function in the process of creating a test class.
2.5 Deploying the Application
How to create an executable jar file. Specifically, either of the following.
./gradlew assemble
./mvnw package
3 Inversion of Control
Chapter 3 is about how to realize so-called DI.
3.1 Defining Beans
Bean definition example.
3.2 How Does it Work?
An explanation of how the bean works behind the scenes.
3.3 The BeanContext
An overview of the BeanContext
interface.
3.4 Injectable Container Types
There is a list of how to handle beans.
3.5 Bean Qualifiers
How to choose a bean.
--By name
--By annotation
--Bean priority (@Primary
annotation)
3.6 Scopes
About the scope (survival range) of the bean.
3.6.1 Built-In Scopes
Default scope table.
3.6.2 Refreshable Scope
About the @Refreshable
scope that can be cleared at any time.
3.6.3 Scopes on Meta Annotations
How to specify the scope.
3.7 Bean Factories
About the @Factory
annotation that creates a bean and the conditions that can return null.
3.8 Conditional Beans
About the @Requires
annotation that sets the conditions.
Also how to debug conditional bean generation.
3.9 Bean Replacement
About the @Replaces
annotation that replaces beans.
As a usage example, @DefaultImplementation
that recommends implementation is explained.
3.10 Bean Configurations
About the @Configuration
annotation that groups beans.
3.11 Life-Cycle Methods
About @PostConstruct
and @PreDestroy
annotations that are executed when a bean is created / destroyed.
3.12 Context Events
About the event mechanism that can be used as a pub / sub.
3.13 Bean Events
About BeanInitializedEventListener
, BeanCreatedEventListener
for finer control before and after @ PostConstruct
.
3.14 Bean Introspection
About the behavior of the Introspector class to get information about the class.
3.15 Bean Validation
About bean validation. Note that although the micronaut standard supports validation, it is not fully compliant.
3.16 Bean Annotation Metadata
About extension of annotation.
3.17 Micronaut Beans And Spring
About cooperation with Spring.
3.18 Android Support
About Android development.
4 Application Configuration
Chapter 4 is about application configuration and how to pass settings.
4.1 The Environment
About the basic means by environment variables.
4.2 Externalized Configuration with PropertySources
About the method using PropertySources
.
4.3 Configuration Injection
About reference by @Value
annotation.
4.4 Configuration Properties
About the @ConfigurationProperties
annotation that realizes type-safe settings.
4.5 Custom Type Converters
About the TypeConverter
class to support proprietary formats.
4.6 Using @EachProperty
to Drive Configuration
About realization of individual setting by @EachProperty
annotation.
4.7 Using @EachBean
to Drive Configuration
About switching beans by @EachBean
annotation.
4.8 Immutable Configuration
About immutable support.
4.9 JMX Support
About JMX (Java Management Extensions).
5 Aspect Oriented Programming
Chapter 5 is about AOP (Aspect Oriented Programming).
5.1 Around Advice
ʻAround Adviceand how to write advice. As an example, there is a description of the
@Stub` annotation that sets the stub value.
5.2 Introduction Advice
About ʻIntroduction Advice` in the form that provides the implementation.
5.3 Method Adapter Advice
About Method Adapter Advice
to qualify a method.
An example is the @EventListener
annotation.
5.4 Validation Advice
About validation. See JSR 380 for details.
5.5 Cache Advice
About Cache Advice
that controls the cache and the cache mechanism.
5.6 Retry Advice
About Retry Advice
to control retries.
For example, the @Retryable
and @CircuitBreaker
annotations.
5.7 Scheduled Tasks
Schedule background tasks About @Scheduled
annotations that can be used and control of background tasks.
5.8 Bridging Spring AOP
About cooperation with Spring AOP.
6 The HTTP Server
Chapter 6 is about cooperation with HTTP server.
6.1 Running the Embedded Server
About embedded servers.
6.2 Running Server on a Specific Port
About specifying the port number of the embedded server.
6.3 HTTP Routing
About specifying the URI path.
6.4 Simple Request Binding
About URI parameters and cookie bindings.
6.5 Host Resolution
How to get the host name.
6.6 Client IP Address
How to get the client IP address.
6.7 The HttpRequest and HttpResponse
For more information on HTTP request information.
6.8 Response Status
About HTTP response code.
6.9 Response Content-Type
How to specify the content type of the response.
6.10 Accepted Request Content-Type
How to specify the content type of the request.
6.11 Reactive HTTP Request Processing
About reactive processing.
6.11.1 Using the @Body
Annotation
About the @Body
annotation that receives the data.
6.11.2 Reactive Responses
How to return the response.
6.12 JSON Binding with Jackson
How to handle JSON.
6.13 Data Validation
About validation.
6.14 Serving Static Resources
About static resources.
6.15 Error Handling
About error handling and exception handling.
6.16 API Versioning
About API version control.
6.17 Handling Form Data
About processing form data.
6.18 Writing Response Data
How to return a response, especially non-blocking I / O.
6.19 File Uploads
About the file upload process.
6.20 File Transfers
How to send a file.
6.21 HTTP Filters
About HTTP filters.
6.22 HTTP Sessions
How to manage sessions.
6.23 Server Sent Events
How to use the server send event.
6.24 WebSocket Support
An overview of WebSocket
support.
6.24.1 Using @ServerWebSocket
About @ServerWebSocket
that maps to a URI.
6.24.2 Using @ClientWebSocket
The micronaut side is about @ClientWebSocket
which is a client.
6.25 Server Events
About server events and their listeners.
6.26 Configuring the HTTP Server
About HTTP server settings.
6.26.1 Configuring Server Thread Pools
About the thread configuration of the HTTP server.
6.26.2 Configuring CORS
About CORS (Cross Origin Resource Sharing).
6.26.3 Securing the Server with HTTPS
About HTTPS support and certificate usage.
6.26.4 Enabling HTTP and HTTPS
About enabling HTTP / HTTPS.
6.27 Server Side View Rendering
Introducing server-side rendering.
6.28 OpenAPI / Swagger Support
Introduction of cooperation with OpenAPI.
6.29 GraphQL Support
Introducing GraphQL support.
7 The HTTP Client
Chapter 7 is about the built-in HTTP client features.
7.1 Using the Low-Level HTTP Client
There is a basic function HttpClient
interface and a Flowable
RxHttpClient
.
7.1.1 Sending your first HTTP request
Explanation of basic usage and debugging method.
7.1.2 Posting a Request Body
How to send a request. Introduction of URI template function to parameterize a part.
7.1.3 Multipart Client Uploads
How to send a multipart request.
7.1.4 Streaming JSON over HTTP
About streaming communication.
7.1.5 Configuring HTTP clients
About HTTP client settings.
7.1.6 Error Responses
If more than 400 responses are returned, a HttpClientResponseException
exception will be thrown.
7.1.7 Bind Errors
About request binding error.
7.2 Declarative HTTP Clients with @Client
About client behavior using the @ Client
annotation.
7.2.1 Customizing Parameter Binding
About parameter binding.
7.2.2 Streaming with @Client
About streaming client processing.
7.2.3 Error Responses
About handling communication errors.
7.2.4 Customizing Request Headers
How to customize the request header.
7.2.5 Customizing Jackson Settings
How to set up Jackson.
7.2.6 Retry and Circuit Breaker
About retry control.
7.2.7 Client Fallbacks
About the fallback mechanism when a failure occurs.
7.2.8 Netflix Hystrix Support
About fault tolerance support.
7.3 HTTP Client Filters
About HTTP filters as clients.
7.4 HTTP Client Sample
See the tutorial for a sample.
8 Cloud Native Features
Chapter 8 is about cloud support.
8.1 Cloud Configuration
About the supported environment provided.
8.1.1 Distributed Configuration
About sharing in distributed microservices.
8.1.2 HashiCorp Consul Support
About HashiCorp Consul support.
8.1.3 HashiCorp Vault Support
About HashiCorp Vault support.
8.1.4 Spring Cloud Config Support
About Spring Cloud support.
8.1.5 AWS Parameter Store Support
About AWS Parameter Store support.
8.2 Service Discovery
About the service discovery function.
8.2.1 Consul Support
About Consul support.
8.2.2 Eureka Support
About Eureka support.
8.2.3 Kubernetes Support
About Kubernetes support.
8.2.4 AWS Route 53 Support
About AWS Route 53 support.
8.2.5 Manual Service Discovery Configuration
About manual setting of service discovery.
8.3 Client Side Load Balancing
About load distribution using service discovery.
8.3.1 Netflix Ribbon Support
About Netflix Ribbon support.
8.4 Distributed Tracing
About distributed tracing.
8.4.1 Tracing with Zipkin
About Zipkin support.
8.4.2 Tracing with Jaeger
About Jaeger support.
9 Serverless Functions
Chapter 9 is about supporting serverless configurations.
9.1 Writing Functions
How to implement serverless.
9.1.1 FunctionApplication
About the FunctionApplication
class that defines a serverless application.
9.1.2 FunctionBean
About the @FunctionBean
annotation that describes the behavior of a function.
9.1.3 Groovy Functions
How to write as a Groovy script.
9.2 Running Functions
How to execute the implemented function.
9.2.1 Functions as Web Applications
How to run as a web application.
9.2.2 Functions as CLI Applications
How to run as a CLI application.
9.3 Deploying Functions
About deploying serverless configurations.
9.3.1 Deploying Functions to AWS Lambda
About deploying to AWS Lambda environment.
9.3.2 Deploying Functions to OpenFaaS
About deploying to OpenFaaS environment.
9.4 Calling Functions with FunctionClient
About support for FunctionClient format that is called directly from the application.
10 Message-Driven Microservices
Chapter 10 is about message-driven microservices configurations.
10.1 Kafka Support
About Apache Kafka support.
10.2 RabbitMQ Support
About RabbitMQ support.
11 Standalone Command Line Applications
Chapter 11 describes how to run it as a CLI application.
11.1 Picocli Support
About Picocli support.
12 Configurations
Chapter 12 is about modules that work with commonly used components.
12.1 Configurations for Data Access
Module introduction for database access.
12.1.1 Configuring a SQL Data Source
About the configuration of SQL data source.
12.1.2 Configuring Hibernate
About Hibernate / JPA configuration.
12.1.3 Configuring MongoDB
About MongoDB configuration.
12.1.4 Configuring Neo4j
About the configuration of Neo4j Bolt Driver.
12.1.5 Configuring Postgres
About Postgres configuration.
12.1.6 Configuring Redis
About the configuration of Redis.
12.1.7 Configuring Cassandra
About the configuration of Cassandra.
12.1.8 Configuring Liquibase
About the configuration of Liquibase.
12.1.9 Configuring Flyway
About the configuration of Flyway.
13 Language Support
Chapter 13 is about support for each JVM language.
13.1 Micronaut for Java
About the Java language.
13.1.1 Using Micronaut with Java 9+
Notes on Java 9 or later.
13.1.2 Incremental Annotation Processing with Gradle
About incremental processing using Gradle.
13.1.3 Using Project Lombok
Notes on using Project Lombok.
13.1.4 Configuring an IDE
How to set when using the IDE.
13.1.5 Retaining Parameter Names
For troubleshooting problems caused by not preserving method parameter names.
13.2 Micronaut for Groovy
About the Groovy language.
13.3 Micronaut for Kotlin
About the Kotlin language.
13.3.1 Kotlin, Kapt and IntelliJ
About the combination of Kotlin and IntelliJ.
13.3.2 Incremental Annotation Processing with Gradle and Kapt
Incremental processing when using Gradle and Kapt.
13.3.3 Kotlin and AOP Advice
Points to note when implementing AOP with Kotlin.
13.3.4 Kotlin and Retaining Parameter Names
For troubleshooting problems caused by not preserving method parameter names.
13.3.5 Coroutines Support
About coroutine support.
13.4 Micronaut for GraalVM
About GraalVM.
13.4.1 Microservices as GraalVM native images
Support for GraalVM native images.
13.4.2 GraalVM and Micronaut FAQ
FAQ when using GraalVM.
14 Management & Monitoring
Chapter 14 is about the configuration of management endpoints.
14.1 Creating Endpoints
About creating a management endpoint.
14.1.1 The Endpoint Annotation
About the @Endpoint
annotation that creates an endpoint.
14.1.2 Endpoint Methods
About the method to be implemented on the endpoint.
14.1.3 Endpoint Configuration
About setting the endpoint configuration.
14.2 Built-In Endpoints
Introducing embedded endpoints.
14.2.1 The Beans Endpoint
For Beans endpoints that return information about bean definitions.
14.2.2 The Info Endpoint
About Info endpoints that return static information and how to customize them.
14.2.3 The Health Endpoint
About Health endpoints that return operating status.
14.2.4 The Metrics Endpoint
About Metrics endpoints that work with Micrometer.
14.2.5 The Refresh Endpoint
About the Refresh endpoint, which updates the state of the application and reinstantiates it.
14.2.6 The Routes Endpoint
For Routing endpoints that return URI information.
14.2.7 The Loggers Endpoint
About the Loggers endpoint, which sets logger information and log levels.
14.2.8 The Caches Endpoint
About the Caches endpoint, which controls the cache in your application.
14.2.9 The Server Stop Endpoint
About the Stop endpoint that stops the server. Disabled by default.
14.2.10 The Environment Endpoint
About Environment endpoints that get environmental information.
15 Security
Chapter 15 introduces security functions.
16 Multi-Tenancy
Chapter 16 is about multi-tenancy.
16.1 Multi-Tenancy GORM
About cooperation with GORM.
17 Micronaut CLI
Chapter 17 describes the mn
command used in micronaut development.
17.1 Creating a Project
About creating a project.
17.2 Profiles
About profile functions including templates.
17.2.1 Comparing Versions
How to compare versions.
17.3 Features
About features that make up additional dependencies.
17.4 Commands
About the executable commands included in the profile.
17.5 Reloading
Chapter 15 is about restarting during development (hot reload, etc.).
17.5.1 Automatic Restart
How to restart.
17.5.2 JRebel
About cooperation with JRebel.
17.5.3 Spring-Loaded
About cooperation with Spring-Loaded.
17.5.4 Reloading with Gradle
About restarting when using Gradle.
17.5.5 Reloading with an IDE
About restarting when using the IDE.
17.6 Proxy Configuration
About the operation method under the HTTP proxy environment.
18 Appendices
Chapter 18 is an appendix.
18.1 Frequently Asked Questions (FAQ)
FAQ about micronaut.
18.2 Using Snapshots
How to distribute micronaut.
18.3 Common Problems
About common problems that occur when using micronaut (troubleshooting).
18.4 Breaking Changes
About significant changes so far / in the future.
Recommended Posts