添加实力派功能
(本番是正式的,真正的意思,不过直译很奇怪.グレード是等级的意思.サービス是服务的意思,之前也一直这么翻译,但是一直觉得别扭,从这里开始翻译成功能.)
创建商业用的web网站的话,恐怕有必要添加若干个管理功能.SpringBoot使用执行器模块(actuator module),提供了若干个这样的功能(健康检查,监控,Bean等).
使用Gradle 的话,在build.gradle文件里添加以下依赖.
implementation 'org.springframework.boot:spring-boot-starter-actuator'
使用Maven的话,在pom.xml文件里添加以下依赖.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
接着,重启应用程序.使用Gradle的话,在终端窗口(complete 文件夹内)执行以下命令.
./gradlew bootRun
使用Maven的话,在终端窗口(complete 文件夹内)执行以下命令.
./mvnw spring-boot:run
RESTful endpoint的新装配知道在应用程序里添加.这些是SpringBoot提供的管理功能.下面显示的就是典型的输出代码.
management.endpoint.configprops-org.springframework.boot.actuate.autoconfigure.context.properties.ConfigurationPropertiesReportEndpointProperties
management.endpoint.env-org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointProperties
management.endpoint.health-org.springframework.boot.actuate.autoconfigure.health.HealthEndpointProperties
management.endpoint.logfile-org.springframework.boot.actuate.autoconfigure.logging.LogFileWebEndpointProperties
management.endpoints.jmx-org.springframework.boot.actuate.autoconfigure.endpoint.jmx.JmxEndpointProperties
management.endpoints.web-org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties
management.endpoints.web.cors-org.springframework.boot.actuate.autoconfigure.endpoint.web.CorsEndpointProperties
management.health.status-org.springframework.boot.actuate.autoconfigure.health.HealthIndicatorProperties
management.info-org.springframework.boot.actuate.autoconfigure.info.InfoContributorProperties
management.metrics-org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties
management.metrics.export.simple-org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleProperties
management.server-org.springframework.boot.actuate.autoconfigure.web.server.ManagementServerProperties
management.trace.http-org.springframework.boot.actuate.autoconfigure.trace.http.HttpTraceProperties
执行器公开如下.
- 执行器/健康检查
- 执行器/信息
- 执行器
`/actuator/shutdown`也有endpoint,默认,显示只通过JMX.要使HTTP endpoint有效,在`application.properties`里添加`management.endpoint.shutdown.enabled=true`,在`management.endpoints.web.exposure.include=health,info,shutdown`公开.但是,请不要把被公开的应用程序的shutdown endpoint设置为有效.
执行以下命令,可以确认应用程序是否正常运作.
$ curl localhost:8080/actuator/health
{"status":"UP"}
另外,使用curl调用shutdown,没有在application.properties
上添加所需的行(请参考刚才的解释)的话,还可以确认会发生什么.
$ curl -X POST localhost:8080/actuator/shutdown
{"timestamp":1401820343710,"error":"Not Found","status":404,"message":"","path":"/actuator/shutdown"}
由于没有设置有效,被请求的endpoint不能使用(因为endpoint不存在).
关于这些各个REST endpoint的详细信息以及application.properties
文件设置调整的方法请参考endpoint相关文档.
SpringBoot的初试牛刀
已经看了一部分SpringBoot的初始阶段内容了.这些在源码:GitHub全部都可以确认.
支持JAR也支持Groovy
最后献上一例,使用SpringBoot,展示一下如何连接到原本需要却有可能没有注意到的Bean的方法.另外,展示一下使便利的管理功能奏效的方法.
但是,SpringBoot远不止如此.不是只有向来的WAR包部署,有了SpringBoot的下载模块还可以集中可执行的JAR包.各种各样的解释展示了根据spring-boot-gradle-plugin
和spring-boot-maven-plugin
的双重支持.
并且,SpringBoot还支持Groovy,仅凭一个文件就能创建SpringMVC Web应用程序.
创建一个app.groovy
的新文件,配置如下代码.
@RestController
class ThisWillActuallyRun {
@RequestMapping("/")
String home() {
return "Hello, World!"
}
}
文件路径不重要.连在单一的推文内都可以get到小的应用程序.
接下来,安装SpringBoot CLI.
执行如下命令,再执行Groovy应用程序.
$ spring run app.groovy
为了避免端口冲突,请卸载之前的应用程序.
再开一个终端窗口,执行如下curl命令.(同时显示输出)
$ curl localhost:8080
Hello, World!
SpringBoot会把注解主动添加到代码里,使用Groovy Grape依赖管理器执行应用会拉下所需的library执行.
总结
恭喜你!使用SpringBoot创建了简单的Web应用程序,get到了开发基础的晋级方法.另外,方便的切实可用的功能也上轨了.这是使用SpringBoot所能做的其中很小的一个样例而已.更详细的介绍,请参考SpringBoot的官方文档.
本番グレードのサービスを追加する
ビジネス用の Web サイトを構築している場合、おそらくいくつかの管理サービスを追加する必要があります。Spring Boot は、アクチュエーターモジュールを使用して、そのようなサービス(ヘルス、監査、Bean など)をいくつか提供します。
Gradle を使用する場合は、build.gradle
ファイルに次の依存関係を追加します。
implementation 'org.springframework.boot:spring-boot-starter-actuator'COPY
Maven を使用する場合は、pom.xml
ファイルに次の依存関係を追加します。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>COPY
次に、アプリケーションを再起動します。Gradle を使用する場合は、ターミナルウィンドウ(complete
ディレクトリ内)で次のコマンドを実行します。
./gradlew bootRun
Maven を使用する場合は、ターミナルウィンドウ(complete
ディレクトリ内)で次のコマンドを実行します。
./mvnw spring-boot:run
RESTful エンドポイントの新しいセットがアプリケーションに追加されていることがわかります。これらは、Spring Boot が提供する管理サービスです。次のリストは、典型的な出力を示しています。
management.endpoint.configprops-org.springframework.boot.actuate.autoconfigure.context.properties.ConfigurationPropertiesReportEndpointProperties
management.endpoint.env-org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointProperties
management.endpoint.health-org.springframework.boot.actuate.autoconfigure.health.HealthEndpointProperties
management.endpoint.logfile-org.springframework.boot.actuate.autoconfigure.logging.LogFileWebEndpointProperties
management.endpoints.jmx-org.springframework.boot.actuate.autoconfigure.endpoint.jmx.JmxEndpointProperties
management.endpoints.web-org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties
management.endpoints.web.cors-org.springframework.boot.actuate.autoconfigure.endpoint.web.CorsEndpointProperties
management.health.status-org.springframework.boot.actuate.autoconfigure.health.HealthIndicatorProperties
management.info-org.springframework.boot.actuate.autoconfigure.info.InfoContributorProperties
management.metrics-org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties
management.metrics.export.simple-org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleProperties
management.server-org.springframework.boot.actuate.autoconfigure.web.server.ManagementServerProperties
management.trace.http-org.springframework.boot.actuate.autoconfigure.trace.http.HttpTracePropertiesCOPY
アクチュエーターは次を公開します。
/actuator/shutdown エンドポイントもありますが、デフォルトでは、JMX を介してのみ表示されます。HTTP エンドポイントとして有効にするには、 management.endpoint.shutdown.enabled=true を application.properties ファイルに追加し、management.endpoints.web.exposure.include=health,info,shutdown で公開します。ただし、公開されているアプリケーションのシャットダウンエンドポイントを有効にしないでください。 | |
---|---|
次のコマンドを実行して、アプリケーションの正常性を確認できます。
$ curl localhost:8080/actuator/health
{"status":"UP"}COPY
また、curl を使用してシャットダウンを呼び出して、application.properties
に必要な行(前の注を参照)を追加していない場合に何が起こるかを確認することもできます。
$ curl -X POST localhost:8080/actuator/shutdown
{"timestamp":1401820343710,"error":"Not Found","status":404,"message":"","path":"/actuator/shutdown"}COPY
有効にしなかったため、リクエストされたエンドポイントは使用できません(エンドポイントが存在しないため)。
これらの各 REST エンドポイントの詳細および application.properties
ファイル(src/main/resources
内)で設定を調整する方法については、エンドポイントに関するドキュメントを参照してください。
Spring Boot のスターターを見る
Spring Boot の「スターター」の一部を見てきました。これらはすべてソースコード: GitHub (英語) で確認できます。
JAR サポートおよび Groovy サポート
最後の例では、Spring Boot を使用して、必要なことに気付かない可能性のある Bean をワイヤリングする方法を示しました。また、便利な管理サービスを有効にする方法も示しました。
ただし、Spring Boot はそれ以上のことを行います。従来の WAR ファイルデプロイだけでなく、Spring Boot のローダーモジュールのおかげで実行可能 JAR をまとめることもできます。さまざまなガイドが、spring-boot-gradle-plugin
および spring-boot-maven-plugin
によるこの二重サポートを示しています。
その上、Spring Boot は Groovy もサポートしており、わずか 1 つのファイルで Spring MVC Web アプリケーションを構築できます。
app.groovy
という新しいファイルを作成し、次のコードをその中に配置します。
@RestController
class ThisWillActuallyRun {
@RequestMapping("/")
String home() {
return "Hello, World!"
}
}COPY
ファイルの場所は関係ありません。単一のツイート (英語) 内に小さなアプリケーションを収めることさえできます! | |
---|---|
次に、Spring Boot の CLI をインストールします。
次のコマンドを実行して、Groovy アプリケーションを実行します。
$ spring run app.groovyCOPY
ポートの衝突を避けるために、以前のアプリケーションをシャットダウンします。 | |
---|---|
別のターミナルウィンドウから、次の curl コマンドを実行します(出力とともに表示)。
$ curl localhost:8080
Hello, World!COPY
Spring Boot は、キーアノテーションをコードに動的に追加し、Groovy グレープ (英語) を使用してアプリの実行に必要なライブラリをプルダウンすることでこれを行います。
要約
おめでとう! Spring Boot を使用して簡単な Web アプリケーションを構築し、開発ペースを向上させる方法を学びました。また、便利な本番サービスもオンにしました。これは、Spring Boot でできることのほんの小さなサンプリングです。詳細については、Spring Boot のオンラインドキュメントを参照してください。