diff --git a/spring-boot-samples/README.adoc b/spring-boot-samples/README.adoc index 551b825283..d2b98ec807 100644 --- a/spring-boot-samples/README.adoc +++ b/spring-boot-samples/README.adoc @@ -1,89 +1,269 @@ - The following java samples are provided: += Spring Boot Samples -* link:spring-boot-sample-simple[spring-boot-sample-simple] - -- A simple command line application -* link:spring-boot-sample-tomcat[spring-boot-sample-tomcat] - -- Embedded Tomcat -* link:spring-boot-sample-jetty[spring-boot-sample-jetty] - -- Embedded Jetty -* link:spring-boot-sample-activemq[spring-boot-sample-activemq] - -- Simple JMS consumer and producer using Apache ActiveMQ -* link:spring-boot-sample-actuator[spring-boot-sample-actuator] - -- Simple REST service with production features -* link:spring-boot-sample-actuator-ui[spring-boot-sample-actuator-ui] - -- A web UI example with production features -* link:spring-boot-sample-actuator-noweb[spring-boot-sample-actuator-noweb] - -- A production features sample with no web application -* link:spring-boot-sample-actuator-log4j2[spring-boot-sample-actuator-log4j2] - -- A production features sample using log4j 2 for logging (instead of logback) -* link:spring-boot-sample-cache[spring-boot-sample-cache] - -- A web sample that uses Spring's cache abstraction -* link:spring-boot-sample-web-ui[spring-boot-sample-web-ui] - -- A thymeleaf web application -* link:spring-boot-sample-web-static[spring-boot-sample-web-static] - -- A web application serving static files -* link:spring-boot-sample-web-freemarker[spring-boot-sample-web-freemarker] - -- A web application using Freemarker templates -* link:spring-boot-sample-web-velocity[spring-boot-sample-web-velocity] - -- A web application using Velocity templates -* link:spring-boot-sample-web-groovy-templates[spring-boot-sample-web-groovy-templates] - -- A web application using native Groovy templates -* link:spring-boot-sample-web-jsp[spring-boot-sample-web-jsp] - -- A web application using JSP templates -* link:spring-boot-sample-web-tomcat-jsp[spring-boot-sample-tomcat-jsp] - -- A web application using JSP templates with Tomcat 8 -* link:spring-boot-sample-tomcat-multi-connectors[spring-boot-sample-tomcat-multi-connectors] - -- A web application using multiple connectors in tomcat, showing how to customize the Tomcat server -* link:spring-boot-sample-web-secure[spring-boot-sample-web-secure] - -- A web application with typical Security configuration enabling a login form -* link:spring-boot-sample-web-method-security[spring-boot-sample-web-method-security] - -- A web application with Security configuration enabling global method security -* link:spring-boot-sample-secure[spring-boot-sample-secure] - -- example showing Spring Security in a non-web application -* link:spring-boot-sample-servlet[spring-boot-sample-servlet] - -- example showing a "raw" `Servlet` returning plaintext content -* link:spring-boot-sample-ws[spring-boot-sample-ws] - -- A simple contract-first SOAP web service with Spring Web Services -* link:spring-boot-sample-websocket-jetty[spring-boot-sample-websocket-jetty] - -- A web application with Websocket support on Jetty server -* link:spring-boot-sample-websocket-tomcat[spring-boot-sample-websocket-tomcat] - -- A web application with Websocket support on Tomcat server -* link:spring-boot-sample-websocket-undertow[spring-boot-sample-websocket-undertow] - -- A web application with Websocket support on Undertow server -* link:spring-boot-sample-flyway[spring-boot-sample-flyway] - -- Example showing database migrations with Flyway -* link:spring-boot-sample-liquibase[spring-boot-sample-liquibase] - -- Example showing database migrations with Liquibase -* link:spring-boot-sample-amqp[spring-boot-sample-amqp] - -- Example showing message-oriented application using RabbitMQ -* link:spring-boot-sample-hornetq[spring-boot-sample-hornetq] - -- Example showing message-oriented application using HornetQ -* link:spring-boot-sample-batch[spring-boot-sample-batch] - -- Define and run a Batch job in a few lines of code -* link:spring-boot-sample-data-couchbase[spring-boot-sample-data-couchbase] - -- Spring Data Couchbase repositories -* link:spring-boot-sample-data-jpa[spring-boot-sample-data-jpa] - -- Spring Data JPA + Hibernate + HSQLDB -* link:spring-boot-sample-data-mongodb[spring-boot-sample-data-mongodb] - -- Spring Data Mongo repositories -* link:spring-boot-sample-data-solr[spring-boot-sample-data-solr] - -- Spring Data Solr repositories -* link:spring-boot-sample-data-redis[spring-boot-sample-data-redis] - -- Simple usage of Spring Data Redis -* link:spring-boot-sample-data-rest[spring-boot-sample-data-rest] - -- Crud repositories exposed as REST endpoints -* link:spring-boot-sample-integration[spring-boot-sample-integration] - -- A spring integration application -* link:spring-boot-sample-profile[spring-boot-sample-profile] - -- example showing Spring's `@profile` support -* link:spring-boot-sample-property-validation[spring-boot-sample-property-validation] - -- example showing the usage of `@ConfigurationProperties` with a Spring `Validator` -* link:spring-boot-sample-parent-context[spring-boot-sample-parent-context] - -- example showing an `ApplicationContext` with a parent -* link:spring-boot-sample-aop[spring-boot-sample-aop] - -- shows explicit usage of Spring AOP -* link:spring-boot-sample-traditional[spring-boot-sample-traditional] - -- shows more traditional WAR packaging (but also executable using `java -jar`) -* link:spring-boot-sample-xml[spring-boot-sample-xml] - -- Example show how Spring Boot can be mixed with traditional XML configuration (we - generally recommend using Java `@Configuration` whenever possible) +The following sample applications are provided: + +|=== +| Sample | Description + +| link:spring-boot-sample-activemq[spring-boot-sample-activemq] +| JMS consumer and producer using Apache ActiveMQ + +| link:spring-boot-sample-actuator[spring-boot-sample-actuator] +| REST service with production-ready features + +| link:spring-boot-sample-actuator-log4j2[spring-boot-sample-actuator-log4j2] +| Production-ready features using log4j 2 for logging (instead of logback) + +| link:spring-boot-sample-actuator-noweb[spring-boot-sample-actuator-noweb] +| Non-web application with production-ready features + +| link:spring-boot-sample-actuator-ui[spring-boot-sample-actuator-ui] +| Web UI example with production-ready features + +| link:spring-boot-sample-amqp[spring-boot-sample-amqp] +| Message-oriented application using AMQP and RabbitMQ + +| link:spring-boot-sample-ant[spring-boot-sample-ant] +| Executable JAR build using Ant + +| link:spring-boot-sample-aop[spring-boot-sample-aop] +| Demonstrates explicit usage of Spring AOP + +| link:spring-boot-sample-atmosphere[spring-boot-sample-atmosphere] +| Chat service built using Atmosphere + +| link:spring-boot-sample-batch[spring-boot-sample-batch] +| Define and run a Batch job in a few lines of code + +| link:spring-boot-sample-cache[spring-boot-sample-cache] +| Web application that uses Spring's cache abstraction + +| link:spring-boot-sample-data-cassandra[spring-boot-sample-data-cassandra] +| Stores data using Spring Data Cassandra + +| link:spring-boot-sample-data-couchbase[spring-boot-sample-data-couchbase] +| Stores data using Spring Data Couchbase + +| link:spring-boot-sample-data-elasticsearch[spring-boot-sample-data-elasticsearch] +| Stores data using Spring Data Elasticsearch + +| link:spring-boot-sample-data-gemfire[spring-boot-sample-data-gemfire] +| Stores data using Spring Data GemFire + +| link:spring-boot-sample-data-jpa[spring-boot-sample-data-jpa] +| Stores data using Spring Data JPA with Hibernate + +| link:spring-boot-sample-data-mongodb[spring-boot-sample-data-mongodb] +| Stores data using Spring Data MongoDB + +| link:spring-boot-sample-data-neo4j[spring-boot-sample-data-neo4j] +| Stores data using Spring Data Redis + +| link:spring-boot-sample-data-redis[spring-boot-sample-data-redis] +| Stores data using Spring Data Redis + +| link:spring-boot-sample-data-rest[spring-boot-sample-data-rest] +| RESTful service built using Spring Data REST + +| link:spring-boot-sample-data-solr[spring-boot-sample-data-solr] +| Stores data using Spring Data Solr + +| link:spring-boot-sample-devtools[spring-boot-sample-devtools] +| Using DevTools for rapid application development + +| link:spring-boot-sample-flyway[spring-boot-sample-flyway] +| Database migrations with Flyway + +| link:spring-boot-sample-hateoas[spring-boot-sample-hateoas] +| RESTful API built using Spring Hateoas + +| link:spring-boot-sample-hibernate4[spring-boot-sample-hibernate4] +| Demonstrates how to use Hibernate 4 + +| link:spring-boot-sample-hornetq[spring-boot-sample-hornetq] +| Message-oriented application using HornetQ + +| link:spring-boot-sample-hypermedia[spring-boot-sample-hypermedia] +| Demonstrates Actuator's hypermedia support, including HAL Browser + +| link:spring-boot-sample-hypermedia-gson[spring-boot-sample-hypermedia-gson] +| Demonstrates Actuator's hypermedia support using GSON in place of Jackson + +| link:spring-boot-sample-hypermedia-jpa[spring-boot-sample-hypermedia-jpa] +| Demonstrates Actuator's hypermedia support alongside Spring Data JPA and Spring Data + REST + +| link:spring-boot-sample-hypermedia-ui[spring-boot-sample-hypermedia-ui] +| Demonstrates Actuator's hypermedia support alongside a static web UI + +| link:spring-boot-sample-integration[spring-boot-sample-integration] +| Integration application built using Spring Integration and its Java DSL + +| link:spring-boot-sample-jersey[spring-boot-sample-jersey] +| RESTful service built using Jersey 2 + +| link:spring-boot-sample-jersey1[spring-boot-sample-jersey1] +| RESTful service built using Jersey + +| link:spring-boot-sample-jetty[spring-boot-sample-jetty] +| Embedded Jetty + +| link:spring-boot-sample-jetty-ssl[spring-boot-sample-jetty-ssl] +| Embedded Jetty configured to use SSL + +| link:spring-boot-sample-jetty8[spring-boot-sample-jetty8] +| Embedded Jetty 8 + +| link:spring-boot-sample-jetty8-ssl[spring-boot-sample-jetty8-ssl] +| Embedded Jetty 8 SSL + +| link:spring-boot-sample-jetty93[spring-boot-sample-jetty93] +| Embedded Jetty 9.3 + +| link:spring-boot-sample-jooq[spring-boot-sample-jooq] +| Stores data using jOOQ + +| link:spring-boot-sample-jpa[spring-boot-sample-jpa] +| Uses plain JPA (Hibernate) + +| link:spring-boot-sample-jta-atomikos[spring-boot-sample-jta-atomikos] +| JTA transactions with Atomikos + +| link:spring-boot-sample-jta-bitronix[spring-boot-sample-jta-bitronix] +| JTA transactions with Bitronix + +| link:spring-boot-sample-jta-jndi[spring-boot-sample-jta-jndi] +| JTA transactions using a `TransactionManager` and `DataSource` from JNDI + +| link:spring-boot-sample-jta-narayana[spring-boot-sample-jta-narayana] +| JTA transactions with Narayana + +| link:spring-boot-sample-liquibase[spring-boot-sample-liquibase] +| Database migrations with Liquibase + +| link:spring-boot-sample-logback[spring-boot-sample-logback] +| Demonstrates Spring Boot's custom Logback functionality configured in logback-spring.xml + +| link:spring-boot-sample-metrics-dropwizard[spring-boot-sample-metrics-dropwizard] +| Demonstrates support for Dropwizard metrics + +| link:spring-boot-sample-metrics-opentsdb[spring-boot-sample-metrics-opentsdb] +| Exports metrics to OpenTSDB + +| link:spring-boot-sample-metrics-redis[spring-boot-sample-metrics-redis] +| Exports metrics to Redis + +| link:spring-boot-sample-parent-context[spring-boot-sample-parent-context] +| Application that uses an `ApplicationContext` with a parent + +| link:spring-boot-sample-profile[spring-boot-sample-profile] +| Demonstrates some of Spring Framework's `@Profile` capabilities + +| link:spring-boot-sample-property-validation[spring-boot-sample-property-validation] +| Demonstrates the usage of `@ConfigurationProperties` with a Spring `Validator` + +| link:spring-boot-sample-secure[spring-boot-sample-secure] +| Non-web application that uses Spring Security + +| link:spring-boot-sample-secure-oauth2[spring-boot-sample-secure-oauth2] +| RESTful service secured using OAuth2 + +| link:spring-boot-sample-secure-oauth2-resource[spring-boot-sample-secure-oauth2-resource] +| OAuth2 resource server + +| link:spring-boot-sample-servlet[spring-boot-sample-servlet] +| Web application with a "raw" `Servlet` returning plain text content + +| link:spring-boot-sample-session-redis[spring-boot-sample-session-redis] +| Web Application that uses Spring Session to store session data in Redis + +| link:spring-boot-sample-simple[spring-boot-sample-simple] +| Simple command line application + +| link:spring-boot-sample-test[spring-boot-sample-test] +| Demonstrates Spring Boot's testing capabilities + +| link:spring-boot-sample-testng[spring-boot-sample-testng] +| Demonstrates TestNG-based testing + +| link:spring-boot-sample-tomcat[spring-boot-sample-tomcat] +| Embedded Tomcat + +| link:spring-boot-sample-tomcat-jsp[spring-boot-sample-tomcat-jsp] +| Web application that uses JSP templates with Tomcat 8 + +| link:spring-boot-sample-tomcat-multi-connectors[spring-boot-sample-tomcat-multi-connectors] +| Web application that uses Tomcat configured with multiple connectors + +| link:spring-boot-sample-tomcat-ssl[spring-boot-sample-tomcat-ssl] +| Web application that uses Tomcat configured with SSL + +| link:spring-boot-sample-tomcat7-jsp[spring-boot-sample-tomcat7-jsp] +| Web application that uses JSP templates with Tomcat 7 + +| link:spring-boot-sample-traditional[spring-boot-sample-traditional] +| Traditional WAR packaging (but also executable using `java -jar`) + +| link:spring-boot-sample-undertow[spring-boot-sample-undertow] +| Embedded Undertow + +| link:spring-boot-sample-undertow-ssl[spring-boot-sample-undertow-ssl] +| Embedded Undertow configured to use SSL + +| link:spring-boot-sample-velocity[spring-boot-sample-velocity] +| Non-web application that uses Velocity templates + +| link:spring-boot-sample-war[spring-boot-sample-war] +| Web application packaged as a war file + +| link:spring-boot-sample-web-freemarker[spring-boot-sample-web-freemarker] +| Web application that uses Freemarker templates + +| link:spring-boot-sample-web-groovy-templates[spring-boot-sample-web-groovy-templates] +| Web application that uses Groovy templates + +| link:spring-boot-sample-web-jsp[spring-boot-sample-web-jsp] +| Web application that uses JSP templates + +| link:spring-boot-sample-web-method-security[spring-boot-sample-web-method-security] +| Web application with Security configuration enabling global method security + +| link:spring-boot-sample-web-mustache[spring-boot-sample-web-mustache] +| Web application that uses Mustache views + +| link:spring-boot-sample-web-secure[spring-boot-sample-web-secure] +| Web application with typical Security configuration enabling a login form + +| link:spring-boot-sample-web-secure-custom[spring-boot-sample-web-secure-custom] +| Web application with custom Spring Security configuration + +| link:spring-boot-sample-web-secure-github[spring-boot-sample-web-secure-github] +| Web application with Spring Security configured to authenticate with GitHub using OAuth2 + +| link:spring-boot-sample-web-secure-jdbc[spring-boot-sample-web-secure-jdbc] +| Web application with Spring Security configured to use JDBC authentication + +| link:spring-boot-sample-web-static[spring-boot-sample-web-static] +| Web application that serves static files + +| link:spring-boot-sample-web-ui[spring-boot-sample-web-ui] +| Web application with a basic UI built using Bootstrap and JQuery + +| link:spring-boot-sample-web-velocity[spring-boot-sample-web-velocity] +| Web application that uses Velocity templates + +| link:spring-boot-sample-webservices[spring-boot-sample-webservices] +| Simple contract-first SOAP web service with Spring Web Services + +| link:spring-boot-sample-websocket-jetty[spring-boot-sample-websocket-jetty] +| WebSocket application that uses Jetty + +| link:spring-boot-sample-websocket-tomcat[spring-boot-sample-websocket-tomcat] +| WebSocket application that uses Tomcat + +| link:spring-boot-sample-websocket-undertow[spring-boot-sample-websocket-undertow] +| WebSocket application that uses Undertow + +| link:spring-boot-sample-xml[spring-boot-sample-xml] +| Example show how Spring Boot can be mixed with traditional XML configuration (we + generally recommend using Java `@Configuration` whenever possible