Authors
Phillip Webb, Dave Syer, Josh Long, Stéphane Nicoll, Rob Winch, Andy Wilkinson, Marcel Overdijk, Christian Dupuis, Sébastien Deleuze
1.4.1.BUILD-SNAPSHOT
Copyright © 2013-2016
Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically.
Table of Contents
- I. Spring Boot Documentation
- II. Getting started
- III. Using Spring Boot
- 13. Build systems
- 14. Structuring your code
- 15. Configuration classes
- 16. Auto-configuration
- 17. Spring Beans and dependency injection
- 18. Using the @SpringBootApplication annotation
- 19. Running your application
- 20. Developer tools
- 21. Packaging your application for production
- 22. What to read next
- IV. Spring Boot features
- 23. SpringApplication
- 23.1. Startup failure
- 23.2. Customizing the Banner
- 23.3. Customizing SpringApplication
- 23.4. Fluent builder API
- 23.5. Application events and listeners
- 23.6. Web environment
- 23.7. Accessing application arguments
- 23.8. Using the ApplicationRunner or CommandLineRunner
- 23.9. Application exit
- 23.10. Admin features
- 24. Externalized Configuration
- 25. Profiles
- 26. Logging
- 27. Developing web applications
- 27.1. The ‘Spring Web MVC framework’
- 27.1.1. Spring MVC auto-configuration
- 27.1.2. HttpMessageConverters
- 27.1.3. Custom JSON Serializers and Deserializers
- 27.1.4. MessageCodesResolver
- 27.1.5. Static Content
- 27.1.6. ConfigurableWebBindingInitializer
- 27.1.7. Template engines
- 27.1.8. Error Handling
- 27.1.9. Spring HATEOAS
- 27.1.10. CORS support
- 27.2. JAX-RS and Jersey
- 27.3. Embedded servlet container support
- 28. Security
- 29. Working with SQL databases
- 30. Working with NoSQL technologies
- 31. Caching
- 32. Messaging
- 33. Calling REST services
- 34. Sending email
- 35. Distributed Transactions with JTA
- 36. Hazelcast
- 37. Spring Integration
- 38. Spring Session
- 39. Monitoring and management over JMX
- 40. Testing
- 40.1. Test scope dependencies
- 40.2. Testing Spring applications
- 40.3. Testing Spring Boot applications
- 40.3.1. Detecting test configuration
- 40.3.2. Excluding test configuration
- 40.3.3. Working with random ports
- 40.3.4. Mocking and spying beans
- 40.3.5. Auto-configured tests
- 40.3.6. Auto-configured JSON tests
- 40.3.7. Auto-configured Spring MVC tests
- 40.3.8. Auto-configured Data JPA tests
- 40.3.9. Auto-configured REST clients
- 40.3.10. Auto-configured Spring REST Docs tests
- 40.3.11. Using Spock to test Spring Boot applications
- 40.4. Test utilities
- 41. WebSockets
- 42. Web Services
- 43. Creating your own auto-configuration
- 44. What to read next
- V. Spring Boot Actuator: Production-ready features
- 45. Enabling production-ready features
- 46. Endpoints
- 47. Monitoring and management over HTTP
- 48. Monitoring and management over JMX
- 49. Monitoring and management using a remote shell
- 50. Metrics
- 50.1. System metrics
- 50.2. DataSource metrics
- 50.3. Cache metrics
- 50.4. Tomcat session metrics
- 50.5. Recording your own metrics
- 50.6. Adding your own public metrics
- 50.7. Special features with Java 8
- 50.8. Metric writers, exporters and aggregation
- 50.9. Aggregating metrics from multiple sources
- 50.10. Dropwizard Metrics
- 50.11. Message channel integration
- 51. Auditing
- 52. Tracing
- 53. Process monitoring
- 54. What to read next
- VI. Deploying Spring Boot applications
- VII. Spring Boot CLI
- 58. Installing the CLI
- 59. Using the CLI
- 60. Developing application with the Groovy beans DSL
- 61. Configuring the CLI with settings.xml
- 62. What to read next
- VIII. Build tool plugins
- 63. Spring Boot Maven plugin
- 64. Spring Boot Gradle plugin
- 64.1. Including the plugin
- 64.2. Gradle dependency management
- 64.3. Packaging executable jar and war files
- 64.4. Running a project in-place
- 64.5. Spring Boot plugin configuration
- 64.6. Repackage configuration
- 64.7. Repackage with custom Gradle configuration
- 64.8. Understanding how the Gradle plugin works
- 64.9. Publishing artifacts to a Maven repository using Gradle
- 65. Spring Boot AntLib module
- 66. Supporting other build systems
- 67. What to read next
- IX. ‘How-to’ guides
- 68. Spring Boot application
- 69. Properties & configuration
- 69.1. Automatically expand properties at build time
- 69.2. Externalize the configuration of SpringApplication
- 69.3. Change the location of external properties of an application
- 69.4. Use ‘short’ command line arguments
- 69.5. Use YAML for external properties
- 69.6. Set the active Spring profiles
- 69.7. Change configuration depending on the environment
- 69.8. Discover built-in options for external properties
- 70. Embedded servlet containers
- 70.1. Add a Servlet, Filter or Listener to an application
- 70.2. Change the HTTP port
- 70.3. Use a random unassigned HTTP port
- 70.4. Discover the HTTP port at runtime
- 70.5. Configure SSL
- 70.6. Configure Access Logging
- 70.7. Use behind a front-end proxy server
- 70.8. Configure Tomcat
- 70.9. Enable Multiple Connectors with Tomcat
- 70.10. Use Tomcat’s LegacyCookieProcessor
- 70.11. Use Jetty instead of Tomcat
- 70.12. Configure Jetty
- 70.13. Use Undertow instead of Tomcat
- 70.14. Configure Undertow
- 70.15. Enable Multiple Listeners with Undertow
- 70.16. Use Tomcat 7.x or 8.0
- 70.17. Use Jetty 9.2
- 70.18. Use Jetty 8
- 70.19. Create WebSocket endpoints using @ServerEndpoint
- 70.20. Enable HTTP response compression
- 71. Spring MVC
- 71.1. Write a JSON REST service
- 71.2. Write an XML REST service
- 71.3. Customize the Jackson ObjectMapper
- 71.4. Customize the @ResponseBody rendering
- 71.5. Handling Multipart File Uploads
- 71.6. Switch off the Spring MVC DispatcherServlet
- 71.7. Switch off the Default MVC configuration
- 71.8. Customize ViewResolvers
- 71.9. Velocity
- 71.10. Use Thymeleaf 3
- 72. HTTP clients
- 73. Logging
- 74. Data Access
- 74.1. Configure a DataSource
- 74.2. Configure Two DataSources
- 74.3. Use Spring Data repositories
- 74.4. Separate @Entity definitions from Spring configuration
- 74.5. Configure JPA properties
- 74.6. Use a custom EntityManagerFactory
- 74.7. Use Two EntityManagers
- 74.8. Use a traditional persistence.xml
- 74.9. Use Spring Data JPA and Mongo repositories
- 74.10. Expose Spring Data repositories as REST endpoint
- 74.11. Configure a component that is used by JPA
- 75. Database initialization
- 76. Batch applications
- 77. Actuator
- 78. Security
- 79. Hot swapping
- 80. Build
- 80.1. Generate build information
- 80.2. Generate git information
- 80.3. Customize dependency versions
- 80.4. Create an executable JAR with Maven
- 80.5. Use a Spring Boot application as a dependency
- 80.6. Extract specific libraries when an executable jar runs
- 80.7. Create a non-executable JAR with exclusions
- 80.8. Remote debug a Spring Boot application started with Maven
- 80.9. Remote debug a Spring Boot application started with Gradle
- 80.10. Build an executable archive from Ant without using spring-boot-antlib
- 80.11. How to use Java 6
- 81. Traditional deployment
- X. Appendices
- A. Common application properties
- B. Configuration meta-data
- C. Auto-configuration classes
- D. Test auto-configuration annotations
- E. The executable jar format
- F. Dependency versions