From 619247b2d606f83394b62e4ed4eb6394592bb262 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Tue, 5 Jan 2021 16:46:31 -0800 Subject: [PATCH 1/2] Update suggested Eclipse version to 2020-12 --- CONTRIBUTING.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.adoc b/CONTRIBUTING.adoc index bda953247ca3..1c83e4cd71d1 100755 --- a/CONTRIBUTING.adoc +++ b/CONTRIBUTING.adoc @@ -149,7 +149,7 @@ To use the installer: * Download and run the latest https://download.eclipse.org/justj/?file=oomph/products/latest[Eclipse Installer] (must be 1.19.0 or above). * Switch to "Advanced Mode" using the drop down menu on the right. -* Select "`Eclipse IDE for Java Developers`" under "`Eclipse.org`" as the product to install, `2020-09` as the product version, and click "`next`". +* Select "`Eclipse IDE for Java Developers`" under "`Eclipse.org`" as the product to install, `2020-12` as the product version, and click "`next`". * For the "`Project`" click on "`+`" to add a new setup file. Select "`Github Projects`" and browse for `/eclipse/spring-boot-project.setup` from your locally cloned copy of the source code. Click "`OK`" to add the setup file to the list. * Double-click on "`Spring Boot`" from the project list to add it to the list that will be provisioned then click "`Next`". From 27b0cf946f6850838d505099b0e67b8acc9c340a Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Tue, 5 Jan 2021 17:04:04 -0800 Subject: [PATCH 2/2] Polish README and CONTRIBUTING files --- CONTRIBUTING.adoc | 160 ++++++++++++++++------------------------- README.adoc | 180 +++++++++++++++++----------------------------- 2 files changed, 126 insertions(+), 214 deletions(-) diff --git a/CONTRIBUTING.adoc b/CONTRIBUTING.adoc index 1c83e4cd71d1..1130927bf45e 100755 --- a/CONTRIBUTING.adoc +++ b/CONTRIBUTING.adoc @@ -1,90 +1,67 @@ = Contributing to Spring Boot -Spring Boot is released under the Apache 2.0 license. If you would like to contribute -something, or want to hack on the code this document should help you get started. +Spring Boot is released under the Apache 2.0 license. If you would like to contribute something, or want to hack on the code this document should help you get started. == Code of Conduct -This project adheres to the Contributor Covenant link:CODE_OF_CONDUCT.adoc[code of -conduct]. By participating, you are expected to uphold this code. Please report -unacceptable behavior to spring-code-of-conduct@pivotal.io. +This project adheres to the Contributor Covenant link:CODE_OF_CONDUCT.adoc[code of conduct]. +By participating, you are expected to uphold this code. Please report unacceptable behavior to spring-code-of-conduct@pivotal.io. == Using GitHub Issues -We use GitHub issues to track bugs and enhancements. If you have a general usage question -please ask on https://stackoverflow.com[Stack Overflow]. The Spring Boot team and the -broader community monitor the https://stackoverflow.com/tags/spring-boot[`spring-boot`] -tag. +We use GitHub issues to track bugs and enhancements. +If you have a general usage question please ask on https://stackoverflow.com[Stack Overflow]. +The Spring Boot team and the broader community monitor the https://stackoverflow.com/tags/spring-boot[`spring-boot`] tag. -If you are reporting a bug, please help to speed up problem diagnosis by providing as -much information as possible. Ideally, that would include a small sample project that -reproduces the problem. +If you are reporting a bug, please help to speed up problem diagnosis by providing as much information as possible. +Ideally, that would include a small sample project that reproduces the problem. == Reporting Security Vulnerabilities -If you think you have found a security vulnerability in Spring Boot please *DO NOT* -disclose it publicly until we've had a chance to fix it. Please don't report security -vulnerabilities using GitHub issues, instead head over to https://pivotal.io/security and -learn how to disclose them responsibly. +If you think you have found a security vulnerability in Spring Boot please *DO NOT* disclose it publicly until we've had a chance to fix it. +Please don't report security vulnerabilities using GitHub issues, instead head over to https://tanzu.vmware.com/security and learn how to disclose them responsibly. == Sign the Contributor License Agreement -Before we accept a non-trivial patch or pull request we will need you to -https://cla.pivotal.io/sign/spring[sign the Contributor License Agreement]. -Signing the contributor's agreement does not grant anyone commit rights to the main -repository, but it does mean that we can accept your contributions, and you will get an -author credit if we do. Active contributors might be asked to join the core team, and -given the ability to merge pull requests. +Before we accept a non-trivial patch or pull request we will need you to https://cla.pivotal.io/sign/spring[sign the Contributor License Agreement]. +Signing the contributor's agreement does not grant anyone commit rights to the main repository, but it does mean that we can accept your contributions, and you will get an author credit if we do. +Active contributors might be asked to join the core team, and given the ability to merge pull requests. == Code Conventions and Housekeeping -None of these is essential for a pull request, but they will all help. They can also be -added after the original pull request but before a merge. - -* We use the https://github.com/spring-io/spring-javaformat/[Spring JavaFormat] project - to apply code formatting conventions. If you use Eclipse and you follow the '`Importing - into eclipse`' instructions below you should get project specific formatting - automatically. You can also install the https://github.com/spring-io/spring-javaformat/#intellij-idea[Spring JavaFormat IntelliJ Plugin] - or format the code from the Maven build by running - `./mvnw io.spring.javaformat:spring-javaformat-maven-plugin:apply`. -* The build includes checkstyle rules for many of our code conventions. Run - `./mvnw validate` if you want to check you changes are compliant. -* Make sure all new `.java` files have a Javadoc class comment with at least an - `@author` tag identifying you, and preferably at least a paragraph on what the class is - for. -* Add the ASF license header comment to all new `.java` files (copy from existing files - in the project) -* Add yourself as an `@author` to the `.java` files that you modify substantially (more - than cosmetic changes). +None of these is essential for a pull request, but they will all help. +They can also be added after the original pull request but before a merge. + +* We use the https://github.com/spring-io/spring-javaformat/[Spring JavaFormat] project to apply code formatting conventions. + If you use Eclipse and you follow the '`Importing into eclipse`' instructions below you should get project specific formatting automatically. + You can also install the https://github.com/spring-io/spring-javaformat/#intellij-idea[Spring JavaFormat IntelliJ Plugin] or format the code from the Maven build by running `./mvnw io.spring.javaformat:spring-javaformat-maven-plugin:apply`. +* The build includes checkstyle rules for many of our code conventions. + Run `./mvnw validate` if you want to check you changes are compliant. +* Make sure all new `.java` files have a Javadoc class comment with at least an `@author` tag identifying you, and preferably at least a paragraph on what the class is for. +* Add the ASF license header comment to all new `.java` files (copy from existing files in the project). +* Add yourself as an `@author` to the `.java` files that you modify substantially (more than cosmetic changes). * Add some Javadocs. * A few unit tests would help a lot as well -- someone has to do it. -* If no-one else is using your branch, please rebase it against the current master (or - other target branch in the main project). -* When writing a commit message please follow https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html[these conventions], - if you are fixing an existing issue please add `Fixes gh-XXXX` at the end of the commit - message (where `XXXX` is the issue number). +* If no-one else is using your branch, please rebase it against the current master (or other target branch in the main project). +* When writing a commit message please follow https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html[these conventions]. == Working with the Code -If you don't have an IDE preference we would recommend that you use -https://spring.io/tools/sts[Spring Tools Suite] or -https://eclipse.org[Eclipse] when working with the code. We use the -https://eclipse.org/m2e/[M2Eclipse] eclipse plugin for maven support. Other IDEs and tools -should also work without issue. +If you don't have an IDE preference we would recommend that you use https://spring.io/tools/sts[Spring Tools Suite] or https://eclipse.org[Eclipse] when working with the code. +We use the https://eclipse.org/m2e/[M2Eclipse] Eclipse plugin for Maven support. +Other IDEs and tools should also work without issue. === Building from Source -Spring Boot source can be built from the command line using -https://maven.apache.org/run-maven/index.html[Apache Maven] on JDK 1.8 or above. We -include '`Maven Wrapper`' scripts (`./mvnw` or `mvnw.bat`) that you can run rather than -needing to install Maven locally. +Spring Boot source can be built from the command line using https://maven.apache.org/run-maven/index.html[Apache Maven] on JDK 1.8 or above. +We include '`Maven Wrapper`' scripts (`./mvnw` or `mvnw.bat`) that you can run rather than needing to install Maven locally. @@ -96,11 +73,9 @@ The project can be built from the root directory using the standard Maven comman $ ./mvnw clean install ---- -NOTE: You may need to increase the amount of memory available to Maven by setting -a `MAVEN_OPTS` environment variable with the value `-Xmx512m` +NOTE: You may need to increase the amount of memory available to Maven by setting a `MAVEN_OPTS` environment variable with the value `-Xmx512m`. -If you are rebuilding often, you might also want to skip the tests and the execution of -checkstyle until you are ready to submit a pull request: +If you are rebuilding often, you might also want to skip the tests and the execution of checkstyle until you are ready to submit a pull request: [indent=0] ---- @@ -117,16 +92,13 @@ You can run a full build using the following command: $ ./mvnw -Pfull clean install ---- -NOTE: As for the standard build, you may need to increase the amount of memory available -to Maven by setting a `MAVEN_OPTS` environment variable with the value `-Xmx512m`. We -generate more artifacts when running the full build (such as Javadoc jars), so you may -find the process a little slower than the standard build. +NOTE: As for the standard build, you may need to increase the amount of memory available to Maven by setting a `MAVEN_OPTS` environment variable with the value `-Xmx512m`. +We generate more artifacts when running the full build (such as Javadoc jars), so you may find the process a little slower than the standard build. [TIP] ==== -If you want to run a build without the smoke tests and integration tests, building the -`spring-boot-project` module is enough. You can cd there and run the same command, or you -can run this from the top-level directory: +If you want to run a build without the smoke tests and integration tests, building the `spring-boot-project` module is enough. +You can cd there and run the same command, or you can run this from the top-level directory: [indent=0] ---- @@ -137,9 +109,8 @@ can run this from the top-level directory: === Importing into Eclipse -You can import the Spring Boot code into any Eclipse 2019-12-based distribution. The -easiest way to setup a new environment is to use the Eclipse Installer with the provided -`spring-boot-project.setup` file (in the `/eclipse` folder). +You can import the Spring Boot code into any Eclipse 2019-12-based distribution. +The easiest way to setup a new environment is to use the Eclipse Installer with the provided `spring-boot-project.setup` file (in the `/eclipse` folder). @@ -150,7 +121,8 @@ To use the installer: * Download and run the latest https://download.eclipse.org/justj/?file=oomph/products/latest[Eclipse Installer] (must be 1.19.0 or above). * Switch to "Advanced Mode" using the drop down menu on the right. * Select "`Eclipse IDE for Java Developers`" under "`Eclipse.org`" as the product to install, `2020-12` as the product version, and click "`next`". -* For the "`Project`" click on "`+`" to add a new setup file. Select "`Github Projects`" and browse for `/eclipse/spring-boot-project.setup` from your locally cloned copy of the source code. +* For the "`Project`" click on "`+`" to add a new setup file. + Select "`Github Projects`" and browse for `/eclipse/spring-boot-project.setup` from your locally cloned copy of the source code. Click "`OK`" to add the setup file to the list. * Double-click on "`Spring Boot`" from the project list to add it to the list that will be provisioned then click "`Next`". * Click show all variables and make sure that "`Checkout Location`" points to the locally cloned source code that you selected earlier. @@ -162,17 +134,16 @@ Projects will be grouped into working-sets to make the code easier to navigate. If you want to work on the `spring-boot-gradle-plugin` you should remove the imported Maven project and reimport it as a Gradle project. -TIP: If you see import errors with `com.sun` packages make sure you have setup a valid `JavaSE-1.8` environment. From preferences select "`Java`", "`Installed JREs`", "`Execution Environments`" and make sure "`JavaSE-1.8`" points to a Java 1.8 install (we use AdoptOpenJDK on our CI). +TIP: If you see import errors with `com.sun` packages make sure you have setup a valid `JavaSE-1.8` environment. +From preferences select "`Java`", "`Installed JREs`", "`Execution Environments`" and make sure "`JavaSE-1.8`" points to a Java 1.8 install (we use AdoptOpenJDK on our CI). ==== Manual Installation with M2Eclipse -If you prefer to install Eclipse yourself you should use the -https://eclipse.org/m2e/[M2Eclipse] eclipse plugin. If you don't already have m2eclipse -installed it is available from the "`Eclipse marketplace`". +If you prefer to install Eclipse yourself you should use the https://eclipse.org/m2e/[M2Eclipse] eclipse plugin. +If you don't already have m2eclipse installed it is available from the "`Eclipse marketplace`". -Spring Boot includes project specific source formatting settings, in order to have these -work with m2eclipse, we provide an additional Eclipse plugin that you can install: +Spring Boot includes project specific source formatting settings, in order to have these work with m2eclipse, we provide an additional Eclipse plugin that you can install. @@ -181,30 +152,25 @@ work with m2eclipse, we provide an additional Eclipse plugin that you can instal * Add `https://dl.bintray.com/spring/javaformat-eclipse/` as a site. * Install "Spring Java Format". -NOTE: The plugin is optional. Projects can be imported without the plugins, your code -changes just won't be automatically formatted. +NOTE: The plugin is optional. +Projects can be imported without the plugins, your code changes just won't be automatically formatted. -With the requisite eclipse plugins installed you can select -`import existing maven projects` from the `file` menu to import the code. You will -need to import the root `spring-boot` pom and the `spring-boot-smoke-tests` pom separately. +With the requisite eclipse plugins installed you can select `import existing maven projects` from the `file` menu to import the code. +You will need to import the root `spring-boot` pom and the `spring-boot-smoke-tests` pom separately. === Importing into IntelliJ IDEA **Please, do this first!** -Go to `Preferences | Build, Execution, Deployment | Build Tools | Maven | Importing` -and set `VM options for importer` to `-Xmx2g` to allocate sufficient memory for IDEA's -Maven import process to parse the Spring Boot project structure. _Not doing so could -mean the import fails silently, leaving the project setup incomplete._ +Go to `Preferences | Build, Execution, Deployment | Build Tools | Maven | Importing` and set `VM options for importer` to `-Xmx2g` to allocate sufficient memory for IDEA's Maven import process to parse the Spring Boot project structure. +_Not doing so could mean the import fails silently, leaving the project setup incomplete._ -For the actual import use "`File`" -> "`Open`" and select the root `pom.xml`, or the -`spring-boot-project/pom.xml` if you only want the Spring Boot project sources. +For the actual import use "`File`" -> "`Open`" and select the root `pom.xml`, or the `spring-boot-project/pom.xml` if you only want the Spring Boot project sources. ==== Install the Spring Formatter plugin -If you haven't done so, install the formatter plugin so that proper formatting rules are -applied automatically when you reformat code in the IDE. +If you haven't done so, install the formatter plugin so that proper formatting rules are applied automatically when you reformat code in the IDE. * Download the latest https://search.maven.org/search?q=g:io.spring.javaformat%20AND%20a:spring-javaformat-intellij-plugin[IntelliJ IDEA plugin]. * Select "`IntelliJ IDEA`" -> "`Preferences`". @@ -215,8 +181,7 @@ applied automatically when you reformat code in the IDE. ==== Import additional code style -The formatter does not cover all rules (such as order of imports) and an additional file -needs to be added. +The formatter does not cover all rules (such as order of imports) and an additional file needs to be added. * Select "`IntelliJ IDEA`" -> "`Preferences`". * Select "`Editor`" -> "`Code Style`". @@ -226,22 +191,21 @@ needs to be added. === Importing into Other IDEs -Maven is well supported by most Java IDEs. Refer to your vendor documentation. +Maven is well supported by most Java IDEs. +Refer to your vendor documentation. == Integration Tests The smoke tests run as part of the build when you `./mvnw install`. -Due to the fact that they make use of the `spring-boot-maven-plugin` -they cannot be called directly, and so instead are launched via the -`maven-invoker-plugin`. If you encounter build failures running the integration tests, -check the `build.log` file in the appropriate smoke test directory. +Due to the fact that they make use of the `spring-boot-maven-plugin` they cannot be called directly, and so instead are launched via the `maven-invoker-plugin`. +If you encounter build failures running the integration tests, check the `build.log` file in the appropriate smoke test directory. + == Cloning the git repository on Windows -Some files in the git repository may exceed the Windows maximum file path (260 -characters), depending on where you clone the repository. If you get `Filename too long` -errors, set the `core.longPaths=true` git option: +Some files in the git repository may exceed the Windows maximum file path (260 characters), depending on where you clone the repository. +If you get `Filename too long` errors, set the `core.longPaths=true` git option: ``` git clone -c core.longPaths=true https://github.com/spring-projects/spring-boot diff --git a/README.adoc b/README.adoc index e01a72fa1393..e8363805e6b0 100755 --- a/README.adoc +++ b/README.adoc @@ -2,32 +2,23 @@ :docs: https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference :github: https://github.com/spring-projects/spring-boot -Spring Boot helps you to create Spring-powered, production-grade applications and -services with absolute minimum fuss. It takes an opinionated view of the Spring platform -so that new and existing users can quickly get to the bits they need. +Spring Boot helps you to create Spring-powered, production-grade applications and services with absolute minimum fuss. +It takes an opinionated view of the Spring platform so that new and existing users can quickly get to the bits they need. -You can use Spring Boot to create stand-alone Java applications that can be started using -`java -jar` or more traditional WAR deployments. We also provide a command line tool -that runs spring scripts. +You can use Spring Boot to create stand-alone Java applications that can be started using `java -jar` or more traditional WAR deployments. +We also provide a command line tool that runs spring scripts. Our primary goals are: -* Provide a radically faster and widely accessible getting started experience for all -Spring development -* Be opinionated out of the box, but get out of the way quickly as requirements start to -diverge from the defaults -* Provide a range of non-functional features that are common to large classes of projects -(e.g. embedded servers, security, metrics, health checks, externalized configuration) -* Absolutely no code generation and no requirement for XML configuration +* Provide a radically faster and widely accessible getting started experience for all Spring development. +* Be opinionated out of the box, but get out of the way quickly as requirements start to diverge from the defaults. +* Provide a range of non-functional features that are common to large classes of projects (e.g. embedded servers, security, metrics, health checks, externalized configuration). +* Absolutely no code generation and no requirement for XML configuration. == Installation and Getting Started -The {docs}/html/[reference documentation] includes detailed -{docs}/html/getting-started.html#getting-started-installing-spring-boot[installation -instructions] as well as a comprehensive -{docs}/html/getting-started.html#getting-started-first-application[``getting started``] -guide. +The {docs}/html/[reference documentation] includes detailed {docs}/html/getting-started.html#getting-started-installing-spring-boot[installation instructions] as well as a comprehensive {docs}/html/getting-started.html#getting-started-first-application[``getting started``] guide. Here is a quick teaser of a complete Spring Boot application in Java: @@ -58,66 +49,48 @@ Here is a quick teaser of a complete Spring Boot application in Java: == Getting help Having trouble with Spring Boot? We'd like to help! -* Check the {docs}/html/[reference documentation], especially the - {docs}/html/howto.html#howto[How-to's] -- they provide solutions to the most common - questions. -* Learn the Spring basics -- Spring Boot builds on many other Spring projects, check - the https://spring.io[spring.io] web-site for a wealth of reference documentation. If - you are just starting out with Spring, try one of the https://spring.io/guides[guides]. -* If you are upgrading, read the {github}/wiki[release notes] for upgrade instructions and - "new and noteworthy" features. -* Ask a question - we monitor https://stackoverflow.com[stackoverflow.com] for questions - tagged with https://stackoverflow.com/tags/spring-boot[`spring-boot`]. You can also chat - with the community on https://gitter.im/spring-projects/spring-boot[Gitter]. +* Check the {docs}/html/[reference documentation], especially the {docs}/html/howto.html#howto[How-to's] -- they provide solutions to the most common questions. +* Learn the Spring basics -- Spring Boot builds on many other Spring projects, check the https://spring.io[spring.io] web-site for a wealth of reference documentation. + If you are just starting out with Spring, try one of the https://spring.io/guides[guides]. +* If you are upgrading, read the {github}/wiki[release notes] for upgrade instructions and "new and noteworthy" features. +* Ask a question - we monitor https://stackoverflow.com[stackoverflow.com] for questions tagged with https://stackoverflow.com/tags/spring-boot[`spring-boot`]. + You can also chat with the community on https://gitter.im/spring-projects/spring-boot[Gitter]. * Report bugs with Spring Boot at {github}/issues[github.com/spring-projects/spring-boot/issues]. == Reporting Issues -Spring Boot uses GitHub's integrated issue tracking system to record bugs and feature -requests. If you want to raise an issue, please follow the recommendations below: +Spring Boot uses GitHub's integrated issue tracking system to record bugs and feature requests. +If you want to raise an issue, please follow the recommendations below: -* Before you log a bug, please search the {github}/issues[issue tracker] to see if someone - has already reported the problem. +* Before you log a bug, please search the {github}/issues[issue tracker] to see if someone has already reported the problem. * If the issue doesn't already exist, {github}/issues/new[create a new issue]. -* Please provide as much information as possible with the issue report, we like to know - the version of Spring Boot that you are using, as well as your Operating System and - JVM version. -* If you need to paste code, or include a stack trace use Markdown +++```+++ escapes - before and after your text. -* If possible try to create a test-case or project that replicates the problem and attach - it to the issue. +* Please provide as much information as possible with the issue report, we like to know the version of Spring Boot that you are using, as well as your Operating System and JVM version. +* If you need to paste code, or include a stack trace use Markdown +++```+++ escapes before and after your text. +* If possible try to create a test-case or project that replicates the problem and attach it to the issue. == Building from Source -You don't need to build from source to use Spring Boot (binaries in -https://repo.spring.io[repo.spring.io]), but if you want to try out the latest and -greatest, Spring Boot can be easily built with the -https://github.com/takari/maven-wrapper[maven wrapper]. You also need JDK 1.8. +You don't need to build from source to use Spring Boot (binaries in https://repo.spring.io[repo.spring.io]), but if you want to try out the latest and greatest, Spring Boot can be easily built with the https://github.com/takari/maven-wrapper[maven wrapper]. +You also need JDK 1.8. [indent=0] ---- $ ./mvnw clean install ---- -If you want to build with the regular `mvn` command, you will need -https://maven.apache.org/run-maven/index.html[Maven v3.5.0 or above]. +If you want to build with the regular `mvn` command, you will need https://maven.apache.org/run-maven/index.html[Maven v3.5.0 or above]. -NOTE: You may need to increase the amount of memory available to Maven by setting -a `MAVEN_OPTS` environment variable with the value `-Xmx512m`. Remember -to set the corresponding property in your IDE as well if you are building and running -tests there (e.g. in Eclipse go to `Preferences->Java->Installed JREs` and edit the -JRE definition so that all processes are launched with those arguments). This property -is automatically set if you use the maven wrapper. +NOTE: You may need to increase the amount of memory available to Maven by setting a `MAVEN_OPTS` environment variable with the value `-Xmx512m`. +Remember to set the corresponding property in your IDE as well if you are building and running tests there (e.g. in Eclipse go to `Preferences->Java->Installed JREs` and edit the JRE definition so that all processes are launched with those arguments). +This property is automatically set if you use the maven wrapper. + +_Also see link:CONTRIBUTING.adoc[CONTRIBUTING.adoc] if you wish to submit pull requests, and in particular please fill out the https://cla.pivotal.io/[Contributor's Agreement] before your first change, however trivial._ -_Also see link:CONTRIBUTING.adoc[CONTRIBUTING.adoc] if you wish to submit pull requests, -and in particular please fill out the -https://support.springsource.com/spring_committer_signup[Contributor's Agreement] -before your first change, however trivial._ -=== Building reference documentation +=== Building reference documentation First of all, make sure you have built the project: [indent=0] @@ -125,17 +98,15 @@ First of all, make sure you have built the project: $ ./mvnw clean install ---- -The reference documentation requires the documentation of the Maven plugin to be -available so you need to build that first since it's not generated by default. +The reference documentation requires the documentation of the Maven plugin to be available so you need to build that first since it's not generated by default. [indent=0] ---- $ ./mvnw clean install -pl spring-boot-project/spring-boot-tools/spring-boot-maven-plugin -Pdefault,full ---- -The documentation also includes auto-generated information about the starters. You might -have that in your local repository already (per the first step) but if you want to refresh -it: +The documentation also includes auto-generated information about the starters. +You might have that in your local repository already (per the first step) but if you want to refresh it: [indent=0] ---- @@ -158,53 +129,43 @@ There are a number of modules in Spring Boot, here is a quick overview: === spring-boot -The main library providing features that support the other parts of Spring Boot, -these include: +The main library providing features that support the other parts of Spring Boot, these include: -* The `SpringApplication` class, providing static convenience methods that can be used -to write a stand-alone Spring Application. Its sole job is to create and refresh an -appropriate Spring `ApplicationContext` -* Embedded web applications with a choice of container (Tomcat, Jetty or Undertow) -* First class externalized configuration support -* Convenience `ApplicationContext` initializers, including support for sensible logging -defaults +* The `SpringApplication` class, providing static convenience methods that can be used to write a stand-alone Spring Application. + Its sole job is to create and refresh an appropriate Spring `ApplicationContext`. +* Embedded web applications with a choice of container (Tomcat, Jetty or Undertow). +* First class externalized configuration support, +* Convenience `ApplicationContext` initializers, including support for sensible logging defaults. === spring-boot-autoconfigure -Spring Boot can configure large parts of common applications based on the content -of their classpath. A single `@EnableAutoConfiguration` annotation triggers -auto-configuration of the Spring context. +Spring Boot can configure large parts of common applications based on the content of their classpath. +A single `@EnableAutoConfiguration` annotation triggers auto-configuration of the Spring context. -Auto-configuration attempts to deduce which beans a user might need. For example, if -`HSQLDB` is on the classpath, and the user has not configured any database connections, -then they probably want an in-memory database to be defined. Auto-configuration will -always back away as the user starts to define their own beans. +Auto-configuration attempts to deduce which beans a user might need. For example, if `HSQLDB` is on the classpath, and the user has not configured any database connections, then they probably want an in-memory database to be defined. +Auto-configuration will always back away as the user starts to define their own beans. === spring-boot-starters -Starters are a set of convenient dependency descriptors that you can include in -your application. You get a one-stop-shop for all the Spring and related technology -that you need without having to hunt through sample code and copy paste loads of -dependency descriptors. For example, if you want to get started using Spring and JPA for -database access include the `spring-boot-starter-data-jpa` dependency in your -project, and you are good to go. +Starters are a set of convenient dependency descriptors that you can include in your application. +You get a one-stop-shop for all the Spring and related technology that you need without having to hunt through sample code and copy paste loads of dependency descriptors. +For example, if you want to get started using Spring and JPA for database access include the `spring-boot-starter-data-jpa` dependency in your project, and you are good to go. === spring-boot-cli -The Spring command line application compiles and runs Groovy source, allowing you to -write the absolute minimum of code to get an application running. Spring CLI -can also watch files, automatically recompiling and restarting when they change. +The Spring command line application compiles and runs Groovy source, allowing you to write the absolute minimum of code to get an application running. +Spring CLI can also watch files, automatically recompiling and restarting when they change. === spring-boot-actuator Actuator endpoints let you monitor and interact with your application. -Spring Boot Actuator provides the infrastructure required for actuator endpoints. It contains -annotation support for actuator endpoints. Out of the box, this module provides a number of endpoints -including the `HealthEndpoint`, `EnvironmentEndpoint`, `BeansEndpoint` and many more. +Spring Boot Actuator provides the infrastructure required for actuator endpoints. +It contains annotation support for actuator endpoints. +Out of the box, this module provides a number of endpoints including the `HealthEndpoint`, `EnvironmentEndpoint`, `BeansEndpoint` and many more. @@ -222,50 +183,37 @@ This module contains core items and annotations that can be helpful when testing === spring-boot-test-autoconfigure -Like other Spring Boot auto-configuration modules, spring-boot-test-autoconfigure, provides auto-configuration -for tests based on the classpath. It includes a number of annotations that can be used to automatically -configure a slice of your application that needs to be tested. +Like other Spring Boot auto-configuration modules, spring-boot-test-autoconfigure, provides auto-configuration for tests based on the classpath. +It includes a number of annotations that can be used to automatically configure a slice of your application that needs to be tested. === spring-boot-loader -Spring Boot Loader provides the secret sauce that allows you to build a single jar file -that can be launched using `java -jar`. Generally you will not need to use -`spring-boot-loader` directly, but instead work with the -link:spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin[Gradle] or -link:spring-boot-project/spring-boot-tools/spring-boot-maven-plugin[Maven] plugin. +Spring Boot Loader provides the secret sauce that allows you to build a single jar file that can be launched using `java -jar`. +Generally you will not need to use `spring-boot-loader` directly, but instead work with the link:spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin[Gradle] or link:spring-boot-project/spring-boot-tools/spring-boot-maven-plugin[Maven] plugin. === spring-boot-devtools -The spring-boot-devtools module provides additional development-time features such as automatic restarts, -for a smoother application development experience. Developer tools are automatically disabled when -running a fully packaged application. +The spring-boot-devtools module provides additional development-time features such as automatic restarts, for a smoother application development experience. +Developer tools are automatically disabled when running a fully packaged application. == Samples -Groovy samples for use with the command line application are available in -link:spring-boot-project/spring-boot-cli/samples[spring-boot-cli/samples]. To run the CLI samples type -`spring run .groovy` from samples directory. +Groovy samples for use with the command line application are available in link:spring-boot-project/spring-boot-cli/samples[spring-boot-cli/samples]. +To run the CLI samples type `spring run .groovy` from samples directory. == Guides -The https://spring.io/[spring.io] site contains several guides that show how to use Spring -Boot step-by-step: +The https://spring.io/[spring.io] site contains several guides that show how to use Spring Boot step-by-step: -* https://spring.io/guides/gs/spring-boot/[Building an Application with Spring Boot] is a - very basic guide that shows you how to create an application, run it and add some - management services. -* https://spring.io/guides/gs/actuator-service/[Building a RESTful Web Service with Spring - Boot Actuator] is a guide to creating a REST web service and also shows how the server - can be configured. -* https://spring.io/guides/gs/convert-jar-to-war/[Converting a Spring Boot JAR Application - to a WAR] shows you how to run applications in a web server as a WAR file. +* https://spring.io/guides/gs/spring-boot/[Building an Application with Spring Boot] is a very basic guide that shows you how to create an application, run it and add some management services. +* https://spring.io/guides/gs/actuator-service/[Building a RESTful Web Service with Spring Boot Actuator] is a guide to creating a REST web service and also shows how the server can be configured. +* https://spring.io/guides/gs/convert-jar-to-war/[Converting a Spring Boot JAR Application to a WAR] shows you how to run applications in a web server as a WAR file. == License -Spring Boot is Open Source software released under the -https://www.apache.org/licenses/LICENSE-2.0.html[Apache 2.0 license]. +Spring Boot is Open Source software released under the https://www.apache.org/licenses/LICENSE-2.0.html[Apache 2.0 license].